16f52b16cSGreg Kroah-Hartman /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ 2607ca46eSDavid Howells #ifndef AFFS_HARDBLOCKS_H 3607ca46eSDavid Howells #define AFFS_HARDBLOCKS_H 4607ca46eSDavid Howells 5607ca46eSDavid Howells #include <linux/types.h> 6607ca46eSDavid Howells 7607ca46eSDavid Howells /* Just the needed definitions for the RDB of an Amiga HD. */ 8607ca46eSDavid Howells 9607ca46eSDavid Howells struct RigidDiskBlock { 10*95a55437SMichael Schmitz __be32 rdb_ID; 11607ca46eSDavid Howells __be32 rdb_SummedLongs; 12*95a55437SMichael Schmitz __be32 rdb_ChkSum; 13*95a55437SMichael Schmitz __be32 rdb_HostID; 14607ca46eSDavid Howells __be32 rdb_BlockBytes; 15*95a55437SMichael Schmitz __be32 rdb_Flags; 16*95a55437SMichael Schmitz __be32 rdb_BadBlockList; 17607ca46eSDavid Howells __be32 rdb_PartitionList; 18*95a55437SMichael Schmitz __be32 rdb_FileSysHeaderList; 19*95a55437SMichael Schmitz __be32 rdb_DriveInit; 20*95a55437SMichael Schmitz __be32 rdb_Reserved1[6]; 21*95a55437SMichael Schmitz __be32 rdb_Cylinders; 22*95a55437SMichael Schmitz __be32 rdb_Sectors; 23*95a55437SMichael Schmitz __be32 rdb_Heads; 24*95a55437SMichael Schmitz __be32 rdb_Interleave; 25*95a55437SMichael Schmitz __be32 rdb_Park; 26*95a55437SMichael Schmitz __be32 rdb_Reserved2[3]; 27*95a55437SMichael Schmitz __be32 rdb_WritePreComp; 28*95a55437SMichael Schmitz __be32 rdb_ReducedWrite; 29*95a55437SMichael Schmitz __be32 rdb_StepRate; 30*95a55437SMichael Schmitz __be32 rdb_Reserved3[5]; 31*95a55437SMichael Schmitz __be32 rdb_RDBBlocksLo; 32*95a55437SMichael Schmitz __be32 rdb_RDBBlocksHi; 33*95a55437SMichael Schmitz __be32 rdb_LoCylinder; 34*95a55437SMichael Schmitz __be32 rdb_HiCylinder; 35*95a55437SMichael Schmitz __be32 rdb_CylBlocks; 36*95a55437SMichael Schmitz __be32 rdb_AutoParkSeconds; 37*95a55437SMichael Schmitz __be32 rdb_HighRDSKBlock; 38*95a55437SMichael Schmitz __be32 rdb_Reserved4; 39607ca46eSDavid Howells char rdb_DiskVendor[8]; 40607ca46eSDavid Howells char rdb_DiskProduct[16]; 41607ca46eSDavid Howells char rdb_DiskRevision[4]; 42607ca46eSDavid Howells char rdb_ControllerVendor[8]; 43607ca46eSDavid Howells char rdb_ControllerProduct[16]; 44607ca46eSDavid Howells char rdb_ControllerRevision[4]; 45*95a55437SMichael Schmitz __be32 rdb_Reserved5[10]; 46607ca46eSDavid Howells }; 47607ca46eSDavid Howells 48607ca46eSDavid Howells #define IDNAME_RIGIDDISK 0x5244534B /* "RDSK" */ 49607ca46eSDavid Howells 50607ca46eSDavid Howells struct PartitionBlock { 51607ca46eSDavid Howells __be32 pb_ID; 52607ca46eSDavid Howells __be32 pb_SummedLongs; 53*95a55437SMichael Schmitz __be32 pb_ChkSum; 54*95a55437SMichael Schmitz __be32 pb_HostID; 55607ca46eSDavid Howells __be32 pb_Next; 56*95a55437SMichael Schmitz __be32 pb_Flags; 57*95a55437SMichael Schmitz __be32 pb_Reserved1[2]; 58*95a55437SMichael Schmitz __be32 pb_DevFlags; 59607ca46eSDavid Howells __u8 pb_DriveName[32]; 60*95a55437SMichael Schmitz __be32 pb_Reserved2[15]; 61607ca46eSDavid Howells __be32 pb_Environment[17]; 62*95a55437SMichael Schmitz __be32 pb_EReserved[15]; 63607ca46eSDavid Howells }; 64607ca46eSDavid Howells 65607ca46eSDavid Howells #define IDNAME_PARTITION 0x50415254 /* "PART" */ 66607ca46eSDavid Howells 67607ca46eSDavid Howells #define RDB_ALLOCATION_LIMIT 16 68607ca46eSDavid Howells 69607ca46eSDavid Howells #endif /* AFFS_HARDBLOCKS_H */ 70