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