home *** CD-ROM | disk | FTP | other *** search
Wrap
@DATABASE "Device/Hardblocks.h" @MASTER "Work2:AD/IInc/Device/Hardblocks.h" @REMARK This file was created by ADtoHT 2.0 on 11-Mär-97 13:33:41 @REMARK Do not edit @REMARK ADtoHT is © 1993-1995 Christian Stieber @NODE MAIN "Device/Hardblocks.h" @TOC "__pOS_Dev.guide/MAIN" @{"Device/Hardblocks.h" LINK File} @{b}Structures@{ub} @{"pOS_BadBlockBlock" LINK "Device/Hardblocks.h/File" 106} @{"pOS_BadBlockEntry" LINK "Device/Hardblocks.h/File" 97} @{"pOS_FileSysHeaderBlock" LINK "Device/Hardblocks.h/File" 173} @{"pOS_PartitionBlock" LINK "Device/Hardblocks.h/File" 123} @{"pOS_RigidDiskBlock" LINK "Device/Hardblocks.h/File" 24} @{b}#defines@{ub} @{"IDNAME_BADBLOCK" LINK "Device/Hardblocks.h/File" 118} @{"IDNAME_FILESYSHEADER" LINK "Device/Hardblocks.h/File" 200} @{"IDNAME_PARTITION" LINK "Device/Hardblocks.h/File" 159} @{"IDNAME_RIGIDDISK" LINK "Device/Hardblocks.h/File" 73} @{"RDB_LOCATION_LIMIT" LINK "Device/Hardblocks.h/File" 74} @ENDNODE @NODE File "Device/Hardblocks.h" #ifndef __INC_POS_DEVICE_HARDBLOCKS_H #define __INC_POS_DEVICE_HARDBLOCKS_H /******************************************************************* Includes Release 24 (C) Copyright 1995-1997 proDAD All Rights Reserved $AUT Holger Burkarth $DAT >>Hardblocks.h<< 10 Jan 1997 08:47:20 - (C) ProDAD *******************************************************************/ #ifndef __INC_POS_PEXEC_TYPES_H #include <@{"pExec/Types.h" LINK "pExec/Types.h/File"}> #endif /*\\ *** Note *** optional block addresses below contain $ffffffff to indicate *** a @{"NULL" LINK "pExec/Types.h/File" 117} address, as zero is a valid address \\*/ /*---------------------------------- -----------------------------------*/ struct pOS_RigidDiskBlock { @{"ULONG" LINK "pExec/Types.h/File" 91} rdb_ID; /* 4 character identifier */ @{"ULONG" LINK "pExec/Types.h/File" 91} rdb_SummedLongs; /* size of this checksummed structure */ @{"ULONG" LINK "pExec/Types.h/File" 91} rdb_ChkSum; /* block checksum (longword sum to zero) */ @{"ULONG" LINK "pExec/Types.h/File" 91} rdb_HostID; /* SCSI Target ID of host */ @{"ULONG" LINK "pExec/Types.h/File" 91} rdb_BlockBytes; /* size of disk blocks */ @{"ULONG" LINK "pExec/Types.h/File" 91} rdb_Flags; /* (enum pOS_RigidDiskBlockFlags) */ /* block list heads */ @{"ULONG" LINK "pExec/Types.h/File" 91} rdb_BadBlockList; /* optional bad block list */ @{"ULONG" LINK "pExec/Types.h/File" 91} rdb_PartitionList; /* optional first partition block */ @{"ULONG" LINK "pExec/Types.h/File" 91} rdb_FSHeaderList; /* optional file system header block */ @{"ULONG" LINK "pExec/Types.h/File" 91} rdb_DriveInit; /* optional drive-specific init code */ @{"ULONG" LINK "pExec/Types.h/File" 91} rdb_Reserved1[6]; /* set to $ffffffff */ /* physical drive characteristics */ @{"ULONG" LINK "pExec/Types.h/File" 91} rdb_Cylinders; /* number of drive cylinders */ @{"ULONG" LINK "pExec/Types.h/File" 91} rdb_Sectors; /* sectors per track */ @{"ULONG" LINK "pExec/Types.h/File" 91} rdb_Heads; /* number of drive heads */ @{"ULONG" LINK "pExec/Types.h/File" 91} rdb_Interleave; /* interleave */ @{"ULONG" LINK "pExec/Types.h/File" 91} rdb_Park; /* landing zone cylinder */ @{"ULONG" LINK "pExec/Types.h/File" 91} rdb_Reserved2[3]; @{"ULONG" LINK "pExec/Types.h/File" 91} rdb_WritePreComp; /* starting cylinder: write precompensation */ @{"ULONG" LINK "pExec/Types.h/File" 91} rdb_ReducedWrite; /* starting cylinder: reduced write current */ @{"ULONG" LINK "pExec/Types.h/File" 91} rdb_StepRate; /* drive step rate */ @{"ULONG" LINK "pExec/Types.h/File" 91} rdb_Reserved3[5]; /* logical drive characteristics */ @{"ULONG" LINK "pExec/Types.h/File" 91} rdb_RDBBlocksLo; /* low block of range reserved for hardblocks */ @{"ULONG" LINK "pExec/Types.h/File" 91} rdb_RDBBlocksHi; /* high block of range for these hardblocks */ @{"ULONG" LINK "pExec/Types.h/File" 91} rdb_LoCylinder; /* low cylinder of partitionable disk area */ @{"ULONG" LINK "pExec/Types.h/File" 91} rdb_HiCylinder; /* high cylinder of partitionable data area */ @{"ULONG" LINK "pExec/Types.h/File" 91} rdb_CylBlocks; /* number of blocks available per cylinder */ @{"ULONG" LINK "pExec/Types.h/File" 91} rdb_AutoParkSeconds; /* zero for no auto park */ @{"ULONG" LINK "pExec/Types.h/File" 91} rdb_HighRDSKBlock; /* highest block used by RDSK */ /* (not including replacement bad blocks) */ @{"ULONG" LINK "pExec/Types.h/File" 91} rdb_Reserved4; /* drive identification */ @{"UBYTE" LINK "pExec/Types.h/File" 95} rdb_DiskVendor[8]; @{"UBYTE" LINK "pExec/Types.h/File" 95} rdb_DiskProduct[16]; @{"UBYTE" LINK "pExec/Types.h/File" 95} rdb_DiskRevision[4]; @{"UBYTE" LINK "pExec/Types.h/File" 95} rdb_ControllerVendor[8]; @{"UBYTE" LINK "pExec/Types.h/File" 95} rdb_ControllerProduct[16]; @{"UBYTE" LINK "pExec/Types.h/File" 95} rdb_ControllerRevision[4]; @{"ULONG" LINK "pExec/Types.h/File" 91} rdb_Reserved5[10]; }; #define IDNAME_RIGIDDISK 0x5244534B /* 'RDSK' */ #define RDB_LOCATION_LIMIT 16 enum pOS_RigidDiskBlockFlags /** rdb_Flags **/ { RDBFB_Last =0, /* no disks exist to be configured after */ RDBFF_Last =0x01, /* this one on this controller */ RDBFB_LastLun =1, /* no LUNs exist to be configured greater */ RDBFF_LastLun =0x02, /* than this one at this SCSI Target ID */ RDBFB_LasttID =2, /* no Target IDs exist to be configured */ RDBFF_LasttID =0x04, /* greater than this one on this SCSI bus */ RDBFB_NoReselect=3, /* don't bother trying to perform reselection */ RDBFF_NoReselect=0x08, /* when talking to this drive */ RDBFB_DiskID =4, /* rdb_Disk... identification valid */ RDBFF_DiskID =0x10, RDBFB_CtrlRID =5, /* rdb_Controller... identification valid */ RDBFF_CtrlRID =0x20, RDBFB_Synch =6, /* drive supports scsi synchronous mode */ RDBFF_Synch =0x40, /* CAN BE DANGEROUS TO USE IF IT DOESN'T! */ }; /*---------------------------------- -----------------------------------*/ struct pOS_BadBlockEntry { @{"ULONG" LINK "pExec/Types.h/File" 91} bbe_BadBlock; /* block number of bad block */ @{"ULONG" LINK "pExec/Types.h/File" 91} bbe_GoodBlock; /* block number of replacement block */ }; /*---------------------------------- -----------------------------------*/ struct pOS_BadBlockBlock { @{"ULONG" LINK "pExec/Types.h/File" 91} bbb_ID; /* 4 character identifier */ @{"ULONG" LINK "pExec/Types.h/File" 91} bbb_SummedLongs; /* size of this checksummed structure */ @{"ULONG" LINK "pExec/Types.h/File" 91} bbb_ChkSum; /* block checksum (longword sum to zero) */ @{"ULONG" LINK "pExec/Types.h/File" 91} bbb_HostID; /* SCSI Target ID of host */ @{"ULONG" LINK "pExec/Types.h/File" 91} bbb_Next; /* block number of the next BadBlockBlock */ @{"ULONG" LINK "pExec/Types.h/File" 91} bbb_Reserved; @{"struct pOS_BadBlockEntry" LINK File 97} bbb_BlockPairs[61]; /* bad block entry pairs */ /* note [61] assumes 512 byte blocks */ }; #define IDNAME_BADBLOCK 0x42414442 /* 'BADB' */ /*---------------------------------- -----------------------------------*/ struct pOS_PartitionBlock { @{"ULONG" LINK "pExec/Types.h/File" 91} pb_ID; /* 4 character identifier */ @{"ULONG" LINK "pExec/Types.h/File" 91} pb_SummedLongs; /* size of this checksummed structure */ @{"ULONG" LINK "pExec/Types.h/File" 91} pb_ChkSum; /* block checksum (longword sum to zero) */ @{"ULONG" LINK "pExec/Types.h/File" 91} pb_HostID; /* SCSI Target ID of host */ @{"ULONG" LINK "pExec/Types.h/File" 91} pb_Next; /* block number of the next PartitionBlock */ @{"ULONG" LINK "pExec/Types.h/File" 91} pb_Flags; /* (enum pOS_PartitionBlockFlags) */ @{"ULONG" LINK "pExec/Types.h/File" 91} pb_Reserved1[2]; @{"ULONG" LINK "pExec/Types.h/File" 91} pb_DevFlags; /* preferred flags for OpenDevice */ @{"UBYTE" LINK "pExec/Types.h/File" 95} pb_DriveName[32]; /* preferred DOS device name: BSTR form */ /* (not used if this name is in use) */ @{"ULONG" LINK "pExec/Types.h/File" 91} pb_Reserved2[15]; /* filler to 32 longwords */ struct @{"ULONG" LINK "pExec/Types.h/File" 91} pbde_TableSize; /* Size of pb_Env */ @{"ULONG" LINK "pExec/Types.h/File" 91} pbde_SizeBlock; /* in longwords: standard value is 128 */ @{"ULONG" LINK "pExec/Types.h/File" 91} pbde_Pad1; /* 0 */ @{"ULONG" LINK "pExec/Types.h/File" 91} pbde_Surfaces; /* # of heads (surfaces). drive specific */ @{"ULONG" LINK "pExec/Types.h/File" 91} pbde_Pad2; /* 1 */ @{"ULONG" LINK "pExec/Types.h/File" 91} pbde_BlocksPerTrack; /* blocks per track. drive specific */ @{"ULONG" LINK "pExec/Types.h/File" 91} pbde_Reserved; /* DOS reserved blocks at start of partition. */ @{"ULONG" LINK "pExec/Types.h/File" 91} pbde_PreAlloc; /* DOS reserved blocks at end of partition */ @{"ULONG" LINK "pExec/Types.h/File" 91} pbde_Interleave; /* usually 0 */ @{"ULONG" LINK "pExec/Types.h/File" 91} pbde_LowCyl; /* starting cylinder. typically 0 */ @{"ULONG" LINK "pExec/Types.h/File" 91} pbde_HighCyl; /* max cylinder. drive specific */ @{"ULONG" LINK "pExec/Types.h/File" 91} pbde_NumBuffers; /* Initial # DOS of buffers. */ @{"ULONG" LINK "pExec/Types.h/File" 91} pbde_BufMemType; /* type of mem to allocate for buffers */ @{"ULONG" LINK "pExec/Types.h/File" 91} pbde_MaxTransfer; /* Max number of bytes to transfer at a time */ @{"ULONG" LINK "pExec/Types.h/File" 91} pbde_Mask; /* Address Mask to block out certain memory */ @{"SLONG" LINK "pExec/Types.h/File" 90} pbde_BootPri; /* Boot priority for autoboot */ } pb_Env; @{"ULONG" LINK "pExec/Types.h/File" 91} pb_EReserved[16]; /* reserved for future environment vector */ }; #define IDNAME_PARTITION 0x50415254 /* 'PART' */ enum pOS_PartitionBlockFlags /** pb_Flags **/ { PBFB_Bootable=0, /* this partition is intended to be bootable */ PBFF_Bootable=0x01, /* (expected directories and files exist) */ PBFB_NoMount =1, /* do not mount this partition (e.g. manually */ PBFF_NoMount =0x02, /* mounted, but space reserved here) */ }; /*---------------------------------- -----------------------------------*/ struct pOS_FileSysHeaderBlock { @{"ULONG" LINK "pExec/Types.h/File" 91} fhb_ID; /* 4 character identifier */ @{"ULONG" LINK "pExec/Types.h/File" 91} fhb_SummedLongs; /* size of this checksummed structure */ @{"ULONG" LINK "pExec/Types.h/File" 91} fhb_ChkSum; /* block checksum (longword sum to zero) */ @{"ULONG" LINK "pExec/Types.h/File" 91} fhb_HostID; /* SCSI Target ID of host */ @{"ULONG" LINK "pExec/Types.h/File" 91} fhb_Next; /* block number of next FileSysHeaderBlock */ @{"ULONG" LINK "pExec/Types.h/File" 91} fhb_Flags; /* see below for defines */ @{"ULONG" LINK "pExec/Types.h/File" 91} fhb_Reserved1[2]; @{"ULONG" LINK "pExec/Types.h/File" 91} fhb_DosType; /* file system description: match this with */ /* partition environment's DE_DOSTYPE entry */ @{"ULONG" LINK "pExec/Types.h/File" 91} fhb_Version; /* release version of this code */ @{"ULONG" LINK "pExec/Types.h/File" 91} fhb_PatchFlags; /* bits set for those of the following that */ /* need to be substituted into a standard */ /* device node for this file system: e.g. */ /* 0x180 to substitute SegList & GlobalVec */ @{"ULONG" LINK "pExec/Types.h/File" 91} fhb_Type; /* device node type: zero */ @{"ULONG" LINK "pExec/Types.h/File" 91} fhb_Task; /* standard dos "task" field: zero */ @{"ULONG" LINK "pExec/Types.h/File" 91} fhb_Pad0; @{"ULONG" LINK "pExec/Types.h/File" 91} fhb_Handler; /* filename to loadseg: zero placeholder */ @{"ULONG" LINK "pExec/Types.h/File" 91} fhb_StackSize; /* stacksize to use when starting task */ @{"SLONG" LINK "pExec/Types.h/File" 90} fhb_Priority; /* task priority when starting task */ @{"ULONG" LINK "pExec/Types.h/File" 91} fhb_Pad[3]; @{"ULONG" LINK "pExec/Types.h/File" 91} fhb_Reserved2[23]; @{"ULONG" LINK "pExec/Types.h/File" 91} fhb_Reserved3[21]; }; #define IDNAME_FILESYSHEADER 0x46534844 /* 'FSHD' */ #endif @ENDNODE