162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-only */
262306a36Sopenharmony_ci/*
362306a36Sopenharmony_ci *  linux/fs/adfs/dir_fplus.h
462306a36Sopenharmony_ci *
562306a36Sopenharmony_ci *  Copyright (C) 1999 Russell King
662306a36Sopenharmony_ci *
762306a36Sopenharmony_ci *  Structures of directories on the F+ format disk
862306a36Sopenharmony_ci */
962306a36Sopenharmony_ci
1062306a36Sopenharmony_ci#define ADFS_FPLUS_NAME_LEN	255
1162306a36Sopenharmony_ci
1262306a36Sopenharmony_ci#define BIGDIRSTARTNAME ('S' | 'B' << 8 | 'P' << 16 | 'r' << 24)
1362306a36Sopenharmony_ci#define BIGDIRENDNAME	('o' | 'v' << 8 | 'e' << 16 | 'n' << 24)
1462306a36Sopenharmony_ci
1562306a36Sopenharmony_cistruct adfs_bigdirheader {
1662306a36Sopenharmony_ci	__u8	startmasseq;
1762306a36Sopenharmony_ci	__u8	bigdirversion[3];
1862306a36Sopenharmony_ci	__le32	bigdirstartname;
1962306a36Sopenharmony_ci	__le32	bigdirnamelen;
2062306a36Sopenharmony_ci	__le32	bigdirsize;
2162306a36Sopenharmony_ci	__le32	bigdirentries;
2262306a36Sopenharmony_ci	__le32	bigdirnamesize;
2362306a36Sopenharmony_ci	__le32	bigdirparent;
2462306a36Sopenharmony_ci	char	bigdirname[1];
2562306a36Sopenharmony_ci} __attribute__((packed, aligned(4)));
2662306a36Sopenharmony_ci
2762306a36Sopenharmony_cistruct adfs_bigdirentry {
2862306a36Sopenharmony_ci	__le32	bigdirload;
2962306a36Sopenharmony_ci	__le32	bigdirexec;
3062306a36Sopenharmony_ci	__le32	bigdirlen;
3162306a36Sopenharmony_ci	__le32	bigdirindaddr;
3262306a36Sopenharmony_ci	__le32	bigdirattr;
3362306a36Sopenharmony_ci	__le32	bigdirobnamelen;
3462306a36Sopenharmony_ci	__le32	bigdirobnameptr;
3562306a36Sopenharmony_ci} __attribute__((packed, aligned(4)));
3662306a36Sopenharmony_ci
3762306a36Sopenharmony_cistruct adfs_bigdirtail {
3862306a36Sopenharmony_ci	__le32	bigdirendname;
3962306a36Sopenharmony_ci	__u8	bigdirendmasseq;
4062306a36Sopenharmony_ci	__u8	reserved[2];
4162306a36Sopenharmony_ci	__u8	bigdircheckbyte;
4262306a36Sopenharmony_ci} __attribute__((packed, aligned(4)));
43