125981136fb13bcacf5f475f3e0ec750341e1e671Christopher Ferris/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#ifndef	AFFS_HARDBLOCKS_H
330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define	AFFS_HARDBLOCKS_H
430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng
530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#include <linux/types.h>
630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng
730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng/* Just the needed definitions for the RDB of an Amiga HD. */
830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng
930692c65c4174412c90e79489e98ab85c1a7412fBen Chengstruct RigidDiskBlock {
1030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	__u32	rdb_ID;
1130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	__be32	rdb_SummedLongs;
1230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	__s32	rdb_ChkSum;
1330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	__u32	rdb_HostID;
1430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	__be32	rdb_BlockBytes;
1530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	__u32	rdb_Flags;
1630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	__u32	rdb_BadBlockList;
1730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	__be32	rdb_PartitionList;
1830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	__u32	rdb_FileSysHeaderList;
1930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	__u32	rdb_DriveInit;
2030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	__u32	rdb_Reserved1[6];
2130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	__u32	rdb_Cylinders;
2230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	__u32	rdb_Sectors;
2330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	__u32	rdb_Heads;
2430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	__u32	rdb_Interleave;
2530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	__u32	rdb_Park;
2630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	__u32	rdb_Reserved2[3];
2730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	__u32	rdb_WritePreComp;
2830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	__u32	rdb_ReducedWrite;
2930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	__u32	rdb_StepRate;
3030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	__u32	rdb_Reserved3[5];
3130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	__u32	rdb_RDBBlocksLo;
3230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	__u32	rdb_RDBBlocksHi;
3330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	__u32	rdb_LoCylinder;
3430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	__u32	rdb_HiCylinder;
3530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	__u32	rdb_CylBlocks;
3630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	__u32	rdb_AutoParkSeconds;
3730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	__u32	rdb_HighRDSKBlock;
3830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	__u32	rdb_Reserved4;
3930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	char	rdb_DiskVendor[8];
4030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	char	rdb_DiskProduct[16];
4130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	char	rdb_DiskRevision[4];
4230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	char	rdb_ControllerVendor[8];
4330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	char	rdb_ControllerProduct[16];
4430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	char	rdb_ControllerRevision[4];
4530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	__u32	rdb_Reserved5[10];
4630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng};
4730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng
4830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define	IDNAME_RIGIDDISK	0x5244534B	/* "RDSK" */
4930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng
5030692c65c4174412c90e79489e98ab85c1a7412fBen Chengstruct PartitionBlock {
5130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	__be32	pb_ID;
5230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	__be32	pb_SummedLongs;
5330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	__s32	pb_ChkSum;
5430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	__u32	pb_HostID;
5530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	__be32	pb_Next;
5630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	__u32	pb_Flags;
5730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	__u32	pb_Reserved1[2];
5830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	__u32	pb_DevFlags;
5930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	__u8	pb_DriveName[32];
6030692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	__u32	pb_Reserved2[15];
6130692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	__be32	pb_Environment[17];
6230692c65c4174412c90e79489e98ab85c1a7412fBen Cheng	__u32	pb_EReserved[15];
6330692c65c4174412c90e79489e98ab85c1a7412fBen Cheng};
6430692c65c4174412c90e79489e98ab85c1a7412fBen Cheng
6530692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define	IDNAME_PARTITION	0x50415254	/* "PART" */
6630692c65c4174412c90e79489e98ab85c1a7412fBen Cheng
6730692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#define RDB_ALLOCATION_LIMIT	16
6830692c65c4174412c90e79489e98ab85c1a7412fBen Cheng
6930692c65c4174412c90e79489e98ab85c1a7412fBen Cheng#endif	/* AFFS_HARDBLOCKS_H */
70