1 #ifndef DEVICES_HARDBLOCKS_H 2 #define DEVICES_HARDBLOCKS_H 3 4 /* 5 hardblocks include (V45) 6 7 Copyright © 2002 The MorphOS Development Team, All Rights Reserved. 8 */ 9 10 #ifndef EXEC_TYPES_H 11 #include <exec/types.h> 12 #endif /* EXEC_TYPES_H */ 13 14 #pragma pack(2) 15 16 17 struct RigidDiskBlock 18 { 19 ULONG rdb_ID; 20 ULONG rdb_SummedLongs; 21 LONG rdb_ChkSum; 22 ULONG rdb_HostID; 23 ULONG rdb_BlockBytes; 24 ULONG rdb_Flags; 25 26 ULONG rdb_BadBlockList; 27 ULONG rdb_PartitionList; 28 ULONG rdb_FileSysHeaderList; 29 ULONG rdb_DriveInit; 30 ULONG rdb_Reserved1[6]; 31 32 ULONG rdb_Cylinders; 33 ULONG rdb_Sectors; 34 ULONG rdb_Heads; 35 ULONG rdb_Interleave; 36 ULONG rdb_Park; 37 ULONG rdb_Reserved2[3]; 38 ULONG rdb_WritePreComp; 39 ULONG rdb_ReducedWrite; 40 ULONG rdb_StepRate; 41 ULONG rdb_Reserved3[5]; 42 43 ULONG rdb_RDBBlocksLo; 44 ULONG rdb_RDBBlocksHi; 45 ULONG rdb_LoCylinder; 46 ULONG rdb_HiCylinder; 47 ULONG rdb_CylBlocks; 48 ULONG rdb_AutoParkSeconds; 49 ULONG rdb_HighRDSKBlock; 50 ULONG rdb_Reserved4; 51 52 char rdb_DiskVendor[8]; 53 char rdb_DiskProduct[16]; 54 char rdb_DiskRevision[4]; 55 char rdb_ControllerVendor[8]; 56 char rdb_ControllerProduct[16]; 57 char rdb_ControllerRevision[4]; 58 59 /*** V44 ***/ 60 61 char rdb_DriveInitName[40]; 62 }; 63 64 #define IDNAME_RIGIDDISK 0x5244534B 65 66 67 #define RDB_LOCATION_LIMIT 16 68 69 70 #define RDBFB_LAST 0 71 #define RDBFF_LAST (1<<RDBFB_LAST) 72 #define RDBFB_LASTLUN 1 73 #define RDBFF_LASTLUN (1<<RDBFB_LASTLUN) 74 #define RDBFB_LASTTID 2 75 #define RDBFF_LASTTID (1<<RDBFB_LASTID) 76 #define RDBFB_NORESELECT 3 77 #define RDBFF_NORESELECT (1<<RDBFB_NORESELECT) 78 #define RDBFB_DISKID 4 79 #define RDBFF_DISKID (1<<RDBFB_DISKID) 80 #define RDBFB_CTRLRID 5 81 #define RDBFF_CTRLRID (1<<RDBFB_CTRLRID) 82 #define RDBFB_SYNCH 6 83 #define RDBFF_SYNCH (1<<RDBFB_SYNCH) 84 85 86 struct BadBlockEntry 87 { 88 ULONG bbe_BadBlock; 89 ULONG bbe_GoodBlock; 90 }; 91 92 struct BadBlockBlock 93 { 94 ULONG bbb_ID; 95 ULONG bbb_SummedLongs; 96 LONG bbb_ChkSum; 97 ULONG bbb_HostID; 98 ULONG bbb_Next; 99 ULONG bbb_Reserved; 100 struct BadBlockEntry bbb_BlockPairs[61]; 101 }; 102 103 #define IDNAME_BADBLOCK 0x42414442 104 105 106 struct PartitionBlock 107 { 108 ULONG pb_ID; 109 ULONG pb_SummedLongs; 110 LONG pb_ChkSum; 111 ULONG pb_HostID; 112 ULONG pb_Next; 113 ULONG pb_Flags; 114 ULONG pb_Reserved1[2]; 115 ULONG pb_DevFlags; 116 UBYTE pb_DriveName[32]; 117 ULONG pb_Reserved2[15]; 118 ULONG pb_Environment[20]; 119 ULONG pb_EReserved[12]; 120 }; 121 122 #define IDNAME_PARTITION 0x50415254 123 124 125 #define PBFB_BOOTABLE 0 126 #define PBFF_BOOTABLE (1<<PBFB_BOOTABLE) 127 #define PBFB_NOMOUNT 1 128 #define PBFF_NOMOUNT (1<<PBFB_NOMOUNT) 129 130 131 struct FileSysHeaderBlock 132 { 133 ULONG fhb_ID; 134 ULONG fhb_SummedLongs; 135 LONG fhb_ChkSum; 136 ULONG fhb_HostID; 137 ULONG fhb_Next; 138 ULONG fhb_Flags; 139 ULONG fhb_Reserved1[2]; 140 ULONG fhb_DosType; 141 ULONG fhb_Version; 142 ULONG fhb_PatchFlags; 143 ULONG fhb_Type; 144 ULONG fhb_Task; 145 ULONG fhb_Lock; 146 ULONG fhb_Handler; 147 ULONG fhb_StackSize; 148 LONG fhb_Priority; 149 LONG fhb_Startup; 150 LONG fhb_SegListBlocks; 151 LONG fhb_GlobalVec; 152 ULONG fhb_Reserved2[23]; 153 154 /*** V44 ***/ 155 156 char fhb_FileSysName[84]; 157 }; 158 159 #define IDNAME_FILESYSHEADER 0x46534844 160 161 162 struct LoadSegBlock 163 { 164 ULONG lsb_ID; 165 ULONG lsb_SummedLongs; 166 LONG lsb_ChkSum; 167 ULONG lsb_HostID; 168 ULONG lsb_Next; 169 ULONG lsb_LoadData[123]; 170 }; 171 172 #define IDNAME_LOADSEG 0x4C534547 173 174 /*** V 50 ***/ 175 struct NewLoadSegBlock { 176 ULONG nsb_ID; 177 ULONG nsb_SummedLongs; 178 LONG nsb_ChkSum; 179 ULONG nsb_HostID; 180 181 ULONG nsb_DataSize; 182 ULONG nsb_DataChkSum; 183 ULONG nsb_DataSector; 184 185 ULONG nsb_Pad[121]; 186 }; 187 188 #define IDNAME_NEWLOADSEG 0x4E534547 /* 'NSEG' */ 189 190 191 #pragma pack() 192 193 #endif /* DEVICES_HARDBLOCKS_H */