1 #ifndef	AFFS_HARDBLOCKS_H
2 #define	AFFS_HARDBLOCKS_H
3 
4 #include <linux/types.h>
5 
6 /* Just the needed definitions for the RDB of an Amiga HD. */
7 
8 struct RigidDiskBlock {
9 	__u32	rdb_ID;
10 	__be32	rdb_SummedLongs;
11 	__s32	rdb_ChkSum;
12 	__u32	rdb_HostID;
13 	__be32	rdb_BlockBytes;
14 	__u32	rdb_Flags;
15 	__u32	rdb_BadBlockList;
16 	__be32	rdb_PartitionList;
17 	__u32	rdb_FileSysHeaderList;
18 	__u32	rdb_DriveInit;
19 	__u32	rdb_Reserved1[6];
20 	__u32	rdb_Cylinders;
21 	__u32	rdb_Sectors;
22 	__u32	rdb_Heads;
23 	__u32	rdb_Interleave;
24 	__u32	rdb_Park;
25 	__u32	rdb_Reserved2[3];
26 	__u32	rdb_WritePreComp;
27 	__u32	rdb_ReducedWrite;
28 	__u32	rdb_StepRate;
29 	__u32	rdb_Reserved3[5];
30 	__u32	rdb_RDBBlocksLo;
31 	__u32	rdb_RDBBlocksHi;
32 	__u32	rdb_LoCylinder;
33 	__u32	rdb_HiCylinder;
34 	__u32	rdb_CylBlocks;
35 	__u32	rdb_AutoParkSeconds;
36 	__u32	rdb_HighRDSKBlock;
37 	__u32	rdb_Reserved4;
38 	char	rdb_DiskVendor[8];
39 	char	rdb_DiskProduct[16];
40 	char	rdb_DiskRevision[4];
41 	char	rdb_ControllerVendor[8];
42 	char	rdb_ControllerProduct[16];
43 	char	rdb_ControllerRevision[4];
44 	__u32	rdb_Reserved5[10];
45 };
46 
47 #define	IDNAME_RIGIDDISK	0x5244534B	/* "RDSK" */
48 
49 struct PartitionBlock {
50 	__be32	pb_ID;
51 	__be32	pb_SummedLongs;
52 	__s32	pb_ChkSum;
53 	__u32	pb_HostID;
54 	__be32	pb_Next;
55 	__u32	pb_Flags;
56 	__u32	pb_Reserved1[2];
57 	__u32	pb_DevFlags;
58 	__u8	pb_DriveName[32];
59 	__u32	pb_Reserved2[15];
60 	__be32	pb_Environment[17];
61 	__u32	pb_EReserved[15];
62 };
63 
64 #define	IDNAME_PARTITION	0x50415254	/* "PART" */
65 
66 #define RDB_ALLOCATION_LIMIT	16
67 
68 #endif	/* AFFS_HARDBLOCKS_H */
69