home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaUtilCD2.iso / Misc / DC-POS24.LZX / pOS / Guide.lzx / Guide / Device / Hardblocks.h < prev    next >
Encoding:
C/C++ Source or Header  |  1997-03-11  |  12.5 KB  |  230 lines

  1. @DATABASE "Device/Hardblocks.h"
  2. @MASTER   "Work2:AD/IInc/Device/Hardblocks.h"
  3. @REMARK   This file was created by ADtoHT 2.0 on 11-Mär-97  13:33:41
  4. @REMARK   Do not edit
  5. @REMARK   ADtoHT is © 1993-1995 Christian Stieber
  6.  
  7. @NODE MAIN "Device/Hardblocks.h"
  8. @TOC "__pOS_Dev.guide/MAIN"
  9.  
  10. @{"Device/Hardblocks.h" LINK File}
  11.  
  12.  
  13. @{b}Structures@{ub}
  14.  
  15. @{"pOS_BadBlockBlock" LINK "Device/Hardblocks.h/File" 106}   @{"pOS_BadBlockEntry" LINK "Device/Hardblocks.h/File" 97}   @{"pOS_FileSysHeaderBlock" LINK "Device/Hardblocks.h/File" 173}
  16. @{"pOS_PartitionBlock" LINK "Device/Hardblocks.h/File" 123}  @{"pOS_RigidDiskBlock" LINK "Device/Hardblocks.h/File" 24}  
  17.  
  18.  
  19. @{b}#defines@{ub}
  20.  
  21. @{"IDNAME_BADBLOCK" LINK "Device/Hardblocks.h/File" 118}   @{"IDNAME_FILESYSHEADER" LINK "Device/Hardblocks.h/File" 200}  @{"IDNAME_PARTITION" LINK "Device/Hardblocks.h/File" 159}
  22. @{"IDNAME_RIGIDDISK" LINK "Device/Hardblocks.h/File" 73}  @{"RDB_LOCATION_LIMIT" LINK "Device/Hardblocks.h/File" 74}    
  23.  
  24. @ENDNODE
  25. @NODE File "Device/Hardblocks.h"
  26. #ifndef __INC_POS_DEVICE_HARDBLOCKS_H
  27. #define __INC_POS_DEVICE_HARDBLOCKS_H
  28. /*******************************************************************
  29.  Includes Release 24
  30.  (C) Copyright 1995-1997 proDAD
  31.      All Rights Reserved
  32.  
  33.  $AUT Holger Burkarth
  34.  $DAT >>Hardblocks.h<<   10 Jan 1997    08:47:20 - (C) ProDAD
  35. *******************************************************************/
  36. #ifndef __INC_POS_PEXEC_TYPES_H
  37. #include <@{"pExec/Types.h" LINK "pExec/Types.h/File"}>
  38. #endif
  39.  
  40.  
  41. /*\\
  42. *** Note
  43. *** optional block addresses below contain $ffffffff to indicate
  44. *** a @{"NULL" LINK "pExec/Types.h/File" 117} address, as zero is a valid address
  45. \\*/
  46.  
  47. /*----------------------------------
  48. -----------------------------------*/
  49. struct pOS_RigidDiskBlock
  50. {
  51.   @{"ULONG" LINK "pExec/Types.h/File" 91} rdb_ID;             /* 4 character identifier */
  52.   @{"ULONG" LINK "pExec/Types.h/File" 91} rdb_SummedLongs;    /* size of this checksummed structure */
  53.   @{"ULONG" LINK "pExec/Types.h/File" 91} rdb_ChkSum;         /* block checksum (longword sum to zero) */
  54.   @{"ULONG" LINK "pExec/Types.h/File" 91} rdb_HostID;         /* SCSI Target ID of host */
  55.   @{"ULONG" LINK "pExec/Types.h/File" 91} rdb_BlockBytes;     /* size of disk blocks */
  56.   @{"ULONG" LINK "pExec/Types.h/File" 91} rdb_Flags;          /* (enum pOS_RigidDiskBlockFlags) */
  57.  
  58. /* block list heads */
  59.   @{"ULONG" LINK "pExec/Types.h/File" 91} rdb_BadBlockList;   /* optional bad block list */
  60.   @{"ULONG" LINK "pExec/Types.h/File" 91} rdb_PartitionList;  /* optional first partition block */
  61.   @{"ULONG" LINK "pExec/Types.h/File" 91} rdb_FSHeaderList;   /* optional file system header block */
  62.   @{"ULONG" LINK "pExec/Types.h/File" 91} rdb_DriveInit;      /* optional drive-specific init code */
  63.   @{"ULONG" LINK "pExec/Types.h/File" 91} rdb_Reserved1[6];   /* set to $ffffffff */
  64.  
  65. /* physical drive characteristics */
  66.   @{"ULONG" LINK "pExec/Types.h/File" 91} rdb_Cylinders;      /* number of drive cylinders */
  67.   @{"ULONG" LINK "pExec/Types.h/File" 91} rdb_Sectors;        /* sectors per track */
  68.   @{"ULONG" LINK "pExec/Types.h/File" 91} rdb_Heads;          /* number of drive heads */
  69.   @{"ULONG" LINK "pExec/Types.h/File" 91} rdb_Interleave;     /* interleave */
  70.   @{"ULONG" LINK "pExec/Types.h/File" 91} rdb_Park;           /* landing zone cylinder */
  71.   @{"ULONG" LINK "pExec/Types.h/File" 91} rdb_Reserved2[3];
  72.   @{"ULONG" LINK "pExec/Types.h/File" 91} rdb_WritePreComp;   /* starting cylinder: write precompensation */
  73.   @{"ULONG" LINK "pExec/Types.h/File" 91} rdb_ReducedWrite;   /* starting cylinder: reduced write current */
  74.   @{"ULONG" LINK "pExec/Types.h/File" 91} rdb_StepRate;       /* drive step rate */
  75.   @{"ULONG" LINK "pExec/Types.h/File" 91} rdb_Reserved3[5];
  76.  
  77. /* logical drive characteristics */
  78.   @{"ULONG" LINK "pExec/Types.h/File" 91} rdb_RDBBlocksLo;    /* low block of range reserved for hardblocks */
  79.   @{"ULONG" LINK "pExec/Types.h/File" 91} rdb_RDBBlocksHi;    /* high block of range for these hardblocks */
  80.   @{"ULONG" LINK "pExec/Types.h/File" 91} rdb_LoCylinder;     /* low cylinder of partitionable disk area */
  81.   @{"ULONG" LINK "pExec/Types.h/File" 91} rdb_HiCylinder;     /* high cylinder of partitionable data area */
  82.   @{"ULONG" LINK "pExec/Types.h/File" 91} rdb_CylBlocks;      /* number of blocks available per cylinder */
  83.   @{"ULONG" LINK "pExec/Types.h/File" 91} rdb_AutoParkSeconds; /* zero for no auto park */
  84.   @{"ULONG" LINK "pExec/Types.h/File" 91} rdb_HighRDSKBlock;  /* highest block used by RDSK */
  85.                               /* (not including replacement bad blocks) */
  86.   @{"ULONG" LINK "pExec/Types.h/File" 91} rdb_Reserved4;
  87.  
  88. /* drive identification */
  89.   @{"UBYTE" LINK "pExec/Types.h/File" 95} rdb_DiskVendor[8];
  90.   @{"UBYTE" LINK "pExec/Types.h/File" 95} rdb_DiskProduct[16];
  91.   @{"UBYTE" LINK "pExec/Types.h/File" 95} rdb_DiskRevision[4];
  92.   @{"UBYTE" LINK "pExec/Types.h/File" 95} rdb_ControllerVendor[8];
  93.   @{"UBYTE" LINK "pExec/Types.h/File" 95} rdb_ControllerProduct[16];
  94.   @{"UBYTE" LINK "pExec/Types.h/File" 95} rdb_ControllerRevision[4];
  95.   @{"ULONG" LINK "pExec/Types.h/File" 91} rdb_Reserved5[10];
  96. };
  97.  
  98. #define IDNAME_RIGIDDISK   0x5244534B /* 'RDSK' */
  99. #define RDB_LOCATION_LIMIT 16
  100.  
  101. enum pOS_RigidDiskBlockFlags /** rdb_Flags **/
  102. {
  103.   RDBFB_Last      =0,       /* no disks exist to be configured after */
  104.   RDBFF_Last      =0x01,    /*   this one on this controller */
  105.   RDBFB_LastLun   =1,       /* no LUNs exist to be configured greater */
  106.   RDBFF_LastLun   =0x02,    /*   than this one at this SCSI Target ID */
  107.   RDBFB_LasttID   =2,       /* no Target IDs exist to be configured */
  108.   RDBFF_LasttID   =0x04,    /*   greater than this one on this SCSI bus */
  109.   RDBFB_NoReselect=3,       /* don't bother trying to perform reselection */
  110.   RDBFF_NoReselect=0x08,    /*   when talking to this drive */
  111.   RDBFB_DiskID    =4,       /* rdb_Disk... identification valid */
  112.   RDBFF_DiskID    =0x10,
  113.   RDBFB_CtrlRID   =5,       /* rdb_Controller... identification valid */
  114.   RDBFF_CtrlRID   =0x20,
  115.   RDBFB_Synch     =6,       /* drive supports scsi synchronous mode */
  116.   RDBFF_Synch     =0x40,    /* CAN BE DANGEROUS TO USE IF IT DOESN'T! */
  117. };
  118.  
  119.  
  120. /*----------------------------------
  121. -----------------------------------*/
  122. struct pOS_BadBlockEntry
  123. {
  124.   @{"ULONG" LINK "pExec/Types.h/File" 91} bbe_BadBlock;  /* block number of bad block */
  125.   @{"ULONG" LINK "pExec/Types.h/File" 91} bbe_GoodBlock; /* block number of replacement block */
  126. };
  127.  
  128.  
  129. /*----------------------------------
  130. -----------------------------------*/
  131. struct pOS_BadBlockBlock
  132. {
  133.   @{"ULONG" LINK "pExec/Types.h/File" 91}   bbb_ID;             /* 4 character identifier */
  134.   @{"ULONG" LINK "pExec/Types.h/File" 91}   bbb_SummedLongs;    /* size of this checksummed structure */
  135.   @{"ULONG" LINK "pExec/Types.h/File" 91}   bbb_ChkSum;         /* block checksum (longword sum to zero) */
  136.   @{"ULONG" LINK "pExec/Types.h/File" 91}   bbb_HostID;         /* SCSI Target ID of host */
  137.   @{"ULONG" LINK "pExec/Types.h/File" 91}   bbb_Next;           /* block number of the next BadBlockBlock */
  138.   @{"ULONG" LINK "pExec/Types.h/File" 91}   bbb_Reserved;
  139.   @{"struct pOS_BadBlockEntry" LINK File 97} bbb_BlockPairs[61]; /* bad block entry pairs */
  140.   /* note [61] assumes 512 byte blocks */
  141. };
  142.  
  143. #define IDNAME_BADBLOCK 0x42414442 /* 'BADB' */
  144.  
  145.  
  146. /*----------------------------------
  147. -----------------------------------*/
  148. struct pOS_PartitionBlock
  149. {
  150.   @{"ULONG" LINK "pExec/Types.h/File" 91} pb_ID;              /* 4 character identifier */
  151.   @{"ULONG" LINK "pExec/Types.h/File" 91} pb_SummedLongs;     /* size of this checksummed structure */
  152.   @{"ULONG" LINK "pExec/Types.h/File" 91} pb_ChkSum;          /* block checksum (longword sum to zero) */
  153.   @{"ULONG" LINK "pExec/Types.h/File" 91} pb_HostID;          /* SCSI Target ID of host */
  154.   @{"ULONG" LINK "pExec/Types.h/File" 91} pb_Next;            /* block number of the next PartitionBlock */
  155.   @{"ULONG" LINK "pExec/Types.h/File" 91} pb_Flags;           /* (enum pOS_PartitionBlockFlags) */
  156.   @{"ULONG" LINK "pExec/Types.h/File" 91} pb_Reserved1[2];
  157.   @{"ULONG" LINK "pExec/Types.h/File" 91} pb_DevFlags;        /* preferred flags for OpenDevice */
  158.   @{"UBYTE" LINK "pExec/Types.h/File" 95} pb_DriveName[32];   /* preferred DOS device name: BSTR form */
  159.                             /* (not used if this name is in use) */
  160.   @{"ULONG" LINK "pExec/Types.h/File" 91} pb_Reserved2[15];   /* filler to 32 longwords */
  161.  
  162.   struct
  163.     @{"ULONG" LINK "pExec/Types.h/File" 91} pbde_TableSize;       /* Size of pb_Env */
  164.     @{"ULONG" LINK "pExec/Types.h/File" 91} pbde_SizeBlock;       /* in longwords: standard value is 128 */
  165.     @{"ULONG" LINK "pExec/Types.h/File" 91} pbde_Pad1;            /* 0 */
  166.     @{"ULONG" LINK "pExec/Types.h/File" 91} pbde_Surfaces;        /* # of heads (surfaces). drive specific */
  167.     @{"ULONG" LINK "pExec/Types.h/File" 91} pbde_Pad2;            /* 1 */
  168.     @{"ULONG" LINK "pExec/Types.h/File" 91} pbde_BlocksPerTrack;  /* blocks per track. drive specific */
  169.     @{"ULONG" LINK "pExec/Types.h/File" 91} pbde_Reserved;        /* DOS reserved blocks at start of partition. */
  170.     @{"ULONG" LINK "pExec/Types.h/File" 91} pbde_PreAlloc;        /* DOS reserved blocks at end of partition */
  171.     @{"ULONG" LINK "pExec/Types.h/File" 91} pbde_Interleave;      /* usually 0 */
  172.     @{"ULONG" LINK "pExec/Types.h/File" 91} pbde_LowCyl;          /* starting cylinder. typically 0 */
  173.     @{"ULONG" LINK "pExec/Types.h/File" 91} pbde_HighCyl;         /* max cylinder. drive specific */
  174.     @{"ULONG" LINK "pExec/Types.h/File" 91} pbde_NumBuffers;      /* Initial # DOS of buffers.  */
  175.     @{"ULONG" LINK "pExec/Types.h/File" 91} pbde_BufMemType;      /* type of mem to allocate for buffers */
  176.     @{"ULONG" LINK "pExec/Types.h/File" 91} pbde_MaxTransfer;     /* Max number of bytes to transfer at a time */
  177.     @{"ULONG" LINK "pExec/Types.h/File" 91} pbde_Mask;            /* Address Mask to block out certain memory */
  178.     @{"SLONG" LINK "pExec/Types.h/File" 90} pbde_BootPri;         /* Boot priority for autoboot */
  179.   } pb_Env;
  180.  
  181.   @{"ULONG" LINK "pExec/Types.h/File" 91} pb_EReserved[16];   /* reserved for future environment vector */
  182. };
  183.  
  184. #define IDNAME_PARTITION 0x50415254 /* 'PART' */
  185.  
  186.  
  187. enum pOS_PartitionBlockFlags /** pb_Flags **/
  188. {
  189.   PBFB_Bootable=0,       /* this partition is intended to be bootable */
  190.   PBFF_Bootable=0x01,    /*   (expected directories and files exist) */
  191.   PBFB_NoMount =1,       /* do not mount this partition (e.g. manually */
  192.   PBFF_NoMount =0x02,    /*   mounted, but space reserved here) */
  193. };
  194.  
  195.  
  196. /*----------------------------------
  197. -----------------------------------*/
  198. struct pOS_FileSysHeaderBlock
  199. {
  200.   @{"ULONG" LINK "pExec/Types.h/File" 91}   fhb_ID;             /* 4 character identifier */
  201.   @{"ULONG" LINK "pExec/Types.h/File" 91}   fhb_SummedLongs;    /* size of this checksummed structure */
  202.   @{"ULONG" LINK "pExec/Types.h/File" 91}   fhb_ChkSum;         /* block checksum (longword sum to zero) */
  203.   @{"ULONG" LINK "pExec/Types.h/File" 91}   fhb_HostID;         /* SCSI Target ID of host */
  204.   @{"ULONG" LINK "pExec/Types.h/File" 91}   fhb_Next;           /* block number of next FileSysHeaderBlock */
  205.   @{"ULONG" LINK "pExec/Types.h/File" 91}   fhb_Flags;          /* see below for defines */
  206.   @{"ULONG" LINK "pExec/Types.h/File" 91}   fhb_Reserved1[2];
  207.   @{"ULONG" LINK "pExec/Types.h/File" 91}   fhb_DosType;        /* file system description: match this with */
  208.                               /* partition environment's DE_DOSTYPE entry */
  209.   @{"ULONG" LINK "pExec/Types.h/File" 91}   fhb_Version;        /* release version of this code */
  210.   @{"ULONG" LINK "pExec/Types.h/File" 91}   fhb_PatchFlags;     /* bits set for those of the following that */
  211.                               /*   need to be substituted into a standard */
  212.                               /*   device node for this file system: e.g. */
  213.                               /*   0x180 to substitute SegList & GlobalVec */
  214.   @{"ULONG" LINK "pExec/Types.h/File" 91}   fhb_Type;           /* device node type: zero */
  215.   @{"ULONG" LINK "pExec/Types.h/File" 91}   fhb_Task;           /* standard dos "task" field: zero */
  216.   @{"ULONG" LINK "pExec/Types.h/File" 91}   fhb_Pad0;
  217.   @{"ULONG" LINK "pExec/Types.h/File" 91}   fhb_Handler;        /* filename to loadseg: zero placeholder */
  218.   @{"ULONG" LINK "pExec/Types.h/File" 91}   fhb_StackSize;      /* stacksize to use when starting task */
  219.   @{"SLONG" LINK "pExec/Types.h/File" 90}   fhb_Priority;       /* task priority when starting task */
  220.   @{"ULONG" LINK "pExec/Types.h/File" 91}   fhb_Pad[3];
  221.   @{"ULONG" LINK "pExec/Types.h/File" 91}   fhb_Reserved2[23];
  222.   @{"ULONG" LINK "pExec/Types.h/File" 91}   fhb_Reserved3[21];
  223. };
  224.  
  225. #define IDNAME_FILESYSHEADER 0x46534844 /* 'FSHD' */
  226.  
  227.  
  228. #endif
  229. @ENDNODE
  230.