home *** CD-ROM | disk | FTP | other *** search
/ The Datafile PD-CD 4 / DATAFILE_PDCD4.iso / unix / unixtools / util / h / chunkfile < prev    next >
Text File  |  1992-07-21  |  2KB  |  61 lines

  1. /* H.ChunkFile - Definitions for Arm Chunk files */
  2.  
  3. #ifndef __sys_chunkfile
  4. #define __sys_chunkfile
  5.  
  6. /* Format of a chunk file header - first few bytes of a chunk file */
  7.  
  8. struct chunk_file_header
  9. {
  10.     unsigned ChunkField;
  11.     unsigned maxChunks;
  12.     unsigned numChunks;
  13.     struct chunk_file_header_entry
  14.     {
  15.         unsigned ChunkIDPrefix;
  16.         unsigned ChunkIDType;
  17.         unsigned FileOffset;
  18.         unsigned Size;
  19.     }
  20.     entry[1];
  21. };
  22.  
  23. #define ChunkFileID (0xC3CBC6C5)
  24. #define ChunkID_LIB (0x5F42494C)    /* (unsigned)('LIB_') */
  25. #define ChunkID_OFL (0x5F4C464F)    /* (unsigned)('OFL_') */
  26. #define ChunkID_OBJ (0x5F4A424F)    /* (unsigned)('OBJ_') */
  27. #define ChunkID_LIB_DIRY (0x59524944)    /* (unsigned)('DIRY') */
  28. #define ChunkID_LIB_TIME (0x454D4954)    /* (unsigned)('TIME') */
  29. #define ChunkID_LIB_VRSN (0x4E535256)    /* (unsigned)('VRSN') */
  30. #define ChunkID_LIB_DATA (0x41544144)    /* (unsigned)('DATA') */
  31. #define ChunkID_OFL_SYMT (0x544D5953)    /* (unsigned)('SYMT') */
  32. #define ChunkID_OFL_TIME (0x454D4954)    /* (unsigned)('TIME') */
  33. #define ChunkID_OBJ_HEAD (0x44414548)    /* (unsigned)('HEAD') */
  34. #define ChunkID_OBJ_AREA (0x41455241)    /* (unsigned)('AREA') */
  35. #define ChunkID_OBJ_IDFN (0x4E464449)    /* (unsigned)('IDFN') */
  36. #define ChunkID_OBJ_SYMT (0x544D5953)    /* (unsigned)('SYMT') */
  37. #define ChunkID_OBJ_STRT (0x54525453)    /* (unsigned)('STRT') */
  38.  
  39. #define ChunkFile_HdrSize(hdr_ptr) \
  40.         (sizeof (struct chunk_file_header) + \
  41.         ((hdr_ptr)->maxChunks - 1) * sizeof (struct chunk_file_header_entry))
  42.  
  43. struct lib_directory_entry
  44. {
  45.     unsigned ChunkIndex;
  46.     unsigned EntryLength;
  47.     unsigned DataLength;
  48.     char LibData[1];
  49. };
  50.  
  51. #define Lib_DataName(ptr) (char *)((ptr)->LibData)
  52. #define Lib_DataTime(ptr) ((struct lib_TimeStamp *)((ptr)->LibData + \
  53.                           ( (strlen((ptr)->LibData)+4) & ~0x03 ) ) )
  54.  
  55. struct lib_TimeStamp
  56. {
  57.     char t[8];
  58. };
  59.  
  60. #endif
  61.