brintos

brintos / linux-shallow public Read only

0
0
Text · 3.1 KiB · da3217a Raw
150 lines · c
1/* SPDX-License-Identifier: GPL-2.0 */2#ifndef AMIGAFFS_H3#define AMIGAFFS_H4 5#include <linux/types.h>6#include <asm/byteorder.h>7 8#define FS_OFS		0x444F53009#define FS_FFS		0x444F530110#define FS_INTLOFS	0x444F530211#define FS_INTLFFS	0x444F530312#define FS_DCOFS	0x444F530413#define FS_DCFFS	0x444F530514#define MUFS_FS		0x6d754653   /* 'muFS' */15#define MUFS_OFS	0x6d754600   /* 'muF\0' */16#define MUFS_FFS	0x6d754601   /* 'muF\1' */17#define MUFS_INTLOFS	0x6d754602   /* 'muF\2' */18#define MUFS_INTLFFS	0x6d754603   /* 'muF\3' */19#define MUFS_DCOFS	0x6d754604   /* 'muF\4' */20#define MUFS_DCFFS	0x6d754605   /* 'muF\5' */21 22#define T_SHORT		223#define T_LIST		1624#define T_DATA		825 26#define ST_LINKFILE	-427#define ST_FILE		-328#define ST_ROOT		129#define ST_USERDIR	230#define ST_SOFTLINK	331#define ST_LINKDIR	432 33#define AFFS_ROOT_BMAPS		2534 35/* Seconds since Amiga epoch of 1978/01/01 to UNIX */36#define AFFS_EPOCH_DELTA ((8 * 365 + 2) * 86400LL)37 38struct affs_date {39	__be32 days;40	__be32 mins;41	__be32 ticks;42};43 44struct affs_short_date {45	__be16 days;46	__be16 mins;47	__be16 ticks;48};49 50struct affs_root_head {51	__be32 ptype;52	/* The following fields are not used, but kept as documentation. */53	__be32 spare1;54	__be32 spare2;55	__be32 hash_size;56	__be32 spare3;57	__be32 checksum;58	__be32 hashtable[];59};60 61struct affs_root_tail {62	__be32 bm_flag;63	__be32 bm_blk[AFFS_ROOT_BMAPS];64	__be32 bm_ext;65	struct affs_date root_change;66	u8 disk_name[32];67	__be32 spare1;68	__be32 spare2;69	struct affs_date disk_change;70	struct affs_date disk_create;71	__be32 spare3;72	__be32 spare4;73	__be32 dcache;74	__be32 stype;75};76 77struct affs_head {78	__be32 ptype;79	__be32 key;80	__be32 block_count;81	__be32 spare1;82	__be32 first_data;83	__be32 checksum;84	__be32 table[];85};86 87struct affs_tail {88	__be32 spare1;89	__be16 uid;90	__be16 gid;91	__be32 protect;92	__be32 size;93	u8 comment[92];94	struct affs_date change;95	u8 name[32];96	__be32 spare2;97	__be32 original;98	__be32 link_chain;99	__be32 spare[5];100	__be32 hash_chain;101	__be32 parent;102	__be32 extension;103	__be32 stype;104};105 106struct slink_front107{108	__be32 ptype;109	__be32 key;110	__be32 spare1[3];111	__be32 checksum;112	u8 symname[];	/* depends on block size */113};114 115struct affs_data_head116{117	__be32 ptype;118	__be32 key;119	__be32 sequence;120	__be32 size;121	__be32 next;122	__be32 checksum;123	u8 data[];	/* depends on block size */124};125 126/* Permission bits */127 128#define FIBF_OTR_READ		0x8000129#define FIBF_OTR_WRITE		0x4000130#define FIBF_OTR_EXECUTE	0x2000131#define FIBF_OTR_DELETE		0x1000132#define FIBF_GRP_READ		0x0800133#define FIBF_GRP_WRITE		0x0400134#define FIBF_GRP_EXECUTE	0x0200135#define FIBF_GRP_DELETE		0x0100136 137#define FIBF_HIDDEN		0x0080138#define FIBF_SCRIPT		0x0040139#define FIBF_PURE		0x0020		/* no use under linux */140#define FIBF_ARCHIVED		0x0010		/* never set, always cleared on write */141#define FIBF_NOREAD		0x0008		/* 0 means allowed */142#define FIBF_NOWRITE		0x0004		/* 0 means allowed */143#define FIBF_NOEXECUTE		0x0002		/* 0 means allowed, ignored under linux */144#define FIBF_NODELETE		0x0001		/* 0 means allowed */145 146#define FIBF_OWNER		0x000F		/* Bits pertaining to owner */147#define FIBF_MASK		0xEE0E		/* Bits modified by Linux */148 149#endif150