home *** CD-ROM | disk | FTP | other *** search
/ The Fred Fish Collection 1.5 / ffcollection-1-5-1992-11.iso / ff_disks / 300-399 / ff350.lzh / TrackUtils / src / dosheaders.h next >
C/C++ Source or Header  |  1990-04-16  |  2KB  |  116 lines

  1. /*
  2.  *        DOSHEADER.H
  3.  *
  4.  *        This file contains a few structures which map out the main
  5.  *        AmigaDOS disk structures (root block, directory block etc.)
  6.  *        These are valid for both the old and new filing systems.
  7.  *
  8.  *        Taken from Betty Clay's article on the differences between the
  9.  *        old FS and new FS under 1.3, in Transactor UK, V1.6, May 1989, and
  10.  *        from the original AmigaDOS Technical Reference manual.
  11.  */
  12.  
  13. #define BTOC(x)        ((void *)((long)(x)<<2))        /* BPTR to C pointer    */
  14. #define CTOB(x)        ((ULONG) ((long)(x)>>2))        /* C pointer to BPTR    */
  15.  
  16. /*
  17.  *        Disk block types
  18.  */
  19.  
  20. #define Type_Short        0x02
  21. #define Type_Data        0x08
  22. #define Type_List        0x10
  23.  
  24. #define SecType_File    0xfffffffd
  25. #define SecType_Root    0x01
  26. #define SecType_UserDir    0x02
  27.  
  28. struct RootBlock {
  29.     LONG    Type;
  30.     ULONG    OwnKey;
  31.     ULONG    SeqNum;
  32.     ULONG    HtSize;
  33.     ULONG    Nothing1;
  34.     ULONG    Checksum;
  35.     ULONG    HashTable[72];
  36.     LONG    BitmapFlag;
  37.     ULONG    BitmapKeys[25];
  38.     ULONG    BitmapExtend;
  39.     ULONG    DirAltered[3];
  40.     char    Name[40];
  41.     ULONG    DiskAltered[3];
  42.     ULONG    DiskMade[3];
  43.     ULONG    Nothing2;
  44.     ULONG    Nothing3;
  45.     ULONG    Nothing4;
  46.     LONG    SecondaryType;
  47. };
  48.  
  49. struct UserDirectoryBlock {
  50.     LONG    Type;
  51.     ULONG    OwnKey;
  52.     ULONG    Spare1;
  53.     ULONG    Spare2;
  54.     ULONG    Spare3;
  55.     LONG    Checksum;
  56.     ULONG    HashTable[72];
  57.     LONG    Spare4;
  58.     LONG    Spare5;
  59.     ULONG    Protection;
  60.     LONG    Spare6;
  61.     char    Comment[92];
  62.     ULONG    Created[3];
  63.     char    DirName[36];
  64.     LONG    Spare7[7];
  65.     ULONG    HashChain;
  66.     ULONG    Parent;
  67.     ULONG    Spare8;
  68.     LONG    SecondaryType;
  69. };
  70.  
  71. struct FileHeaderBlock {
  72.     LONG    Type;
  73.     ULONG    OwnKey;
  74.     ULONG    HighSeq;
  75.     ULONG    DataSize;
  76.     ULONG    FirstBlock;
  77.     LONG    Checksum;
  78.     ULONG    DataBlocks[72];
  79.     ULONG    Spare1;
  80.     ULONG    Spare2;
  81.     ULONG    Protect;
  82.     ULONG    FileSize;
  83.     char    Comment[92];
  84.     ULONG    Date[3];
  85.     char    FileName[36];
  86.     ULONG    Spare3[7];
  87.     ULONG    HashChain;
  88.     ULONG    Parent;
  89.     ULONG    Extension;
  90.     LONG    SecondaryType;
  91. };
  92.  
  93. struct FileListBlock {
  94.     LONG    Type;
  95.     ULONG    OwnKey;
  96.     ULONG    BlockCount;
  97.     ULONG    DataSize;
  98.     ULONG    FirstBlock;
  99.     LONG    Checksum;
  100.     ULONG    DataBlocks[72];
  101.     ULONG    Unused[47];
  102.     ULONG    Parent;
  103.     ULONG    Extension;
  104.     LONG    SecondaryType;
  105. };
  106.  
  107. struct DataBlock {            /* Old Filing System only */
  108.     LONG    Type;
  109.     ULONG    Header;
  110.     ULONG    SeqNum;
  111.     ULONG    DataSize;
  112.     ULONG    NextData;
  113.     LONG    Checksum;
  114.     ULONG    Data[122];
  115. };
  116.