Orange Pi5 kernel

Deprecated Linux kernel 5.10.110 for OrangePi 5/5B/5+ boards

3 Commits   0 Branches   0 Tags
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   1) /* SPDX-License-Identifier: GPL-2.0 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   2) #ifndef AMIGAFFS_H
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   3) #define AMIGAFFS_H
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   4) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   5) #include <linux/types.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   6) #include <asm/byteorder.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   7) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   8) #define FS_OFS		0x444F5300
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300   9) #define FS_FFS		0x444F5301
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  10) #define FS_INTLOFS	0x444F5302
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  11) #define FS_INTLFFS	0x444F5303
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  12) #define FS_DCOFS	0x444F5304
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  13) #define FS_DCFFS	0x444F5305
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  14) #define MUFS_FS		0x6d754653   /* 'muFS' */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  15) #define MUFS_OFS	0x6d754600   /* 'muF\0' */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  16) #define MUFS_FFS	0x6d754601   /* 'muF\1' */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  17) #define MUFS_INTLOFS	0x6d754602   /* 'muF\2' */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  18) #define MUFS_INTLFFS	0x6d754603   /* 'muF\3' */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  19) #define MUFS_DCOFS	0x6d754604   /* 'muF\4' */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  20) #define MUFS_DCFFS	0x6d754605   /* 'muF\5' */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  21) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  22) #define T_SHORT		2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  23) #define T_LIST		16
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  24) #define T_DATA		8
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  25) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  26) #define ST_LINKFILE	-4
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  27) #define ST_FILE		-3
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  28) #define ST_ROOT		1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  29) #define ST_USERDIR	2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  30) #define ST_SOFTLINK	3
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  31) #define ST_LINKDIR	4
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  32) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  33) #define AFFS_ROOT_BMAPS		25
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  34) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  35) /* Seconds since Amiga epoch of 1978/01/01 to UNIX */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  36) #define AFFS_EPOCH_DELTA ((8 * 365 + 2) * 86400LL)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  37) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  38) struct affs_date {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  39) 	__be32 days;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  40) 	__be32 mins;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  41) 	__be32 ticks;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  42) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  43) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  44) struct affs_short_date {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  45) 	__be16 days;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  46) 	__be16 mins;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  47) 	__be16 ticks;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  48) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  49) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  50) struct affs_root_head {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  51) 	__be32 ptype;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  52) 	__be32 spare1;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  53) 	__be32 spare2;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  54) 	__be32 hash_size;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  55) 	__be32 spare3;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  56) 	__be32 checksum;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  57) 	__be32 hashtable[1];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  58) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  59) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  60) struct affs_root_tail {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  61) 	__be32 bm_flag;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  62) 	__be32 bm_blk[AFFS_ROOT_BMAPS];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  63) 	__be32 bm_ext;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  64) 	struct affs_date root_change;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  65) 	u8 disk_name[32];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  66) 	__be32 spare1;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  67) 	__be32 spare2;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  68) 	struct affs_date disk_change;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  69) 	struct affs_date disk_create;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  70) 	__be32 spare3;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  71) 	__be32 spare4;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  72) 	__be32 dcache;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  73) 	__be32 stype;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  74) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  75) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  76) struct affs_head {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  77) 	__be32 ptype;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  78) 	__be32 key;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  79) 	__be32 block_count;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  80) 	__be32 spare1;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  81) 	__be32 first_data;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  82) 	__be32 checksum;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  83) 	__be32 table[1];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  84) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  85) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  86) struct affs_tail {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  87) 	__be32 spare1;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  88) 	__be16 uid;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  89) 	__be16 gid;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  90) 	__be32 protect;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  91) 	__be32 size;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  92) 	u8 comment[92];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  93) 	struct affs_date change;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  94) 	u8 name[32];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  95) 	__be32 spare2;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  96) 	__be32 original;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  97) 	__be32 link_chain;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  98) 	__be32 spare[5];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300  99) 	__be32 hash_chain;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 100) 	__be32 parent;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 101) 	__be32 extension;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 102) 	__be32 stype;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 103) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 104) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 105) struct slink_front
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 106) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 107) 	__be32 ptype;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 108) 	__be32 key;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 109) 	__be32 spare1[3];
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 110) 	__be32 checksum;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 111) 	u8 symname[1];	/* depends on block size */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 112) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 113) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 114) struct affs_data_head
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 115) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 116) 	__be32 ptype;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 117) 	__be32 key;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 118) 	__be32 sequence;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 119) 	__be32 size;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 120) 	__be32 next;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 121) 	__be32 checksum;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 122) 	u8 data[1];	/* depends on block size */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 123) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 124) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 125) /* Permission bits */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 126) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 127) #define FIBF_OTR_READ		0x8000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 128) #define FIBF_OTR_WRITE		0x4000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 129) #define FIBF_OTR_EXECUTE	0x2000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 130) #define FIBF_OTR_DELETE		0x1000
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 131) #define FIBF_GRP_READ		0x0800
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 132) #define FIBF_GRP_WRITE		0x0400
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 133) #define FIBF_GRP_EXECUTE	0x0200
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 134) #define FIBF_GRP_DELETE		0x0100
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 135) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 136) #define FIBF_HIDDEN		0x0080
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 137) #define FIBF_SCRIPT		0x0040
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 138) #define FIBF_PURE		0x0020		/* no use under linux */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 139) #define FIBF_ARCHIVED		0x0010		/* never set, always cleared on write */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 140) #define FIBF_NOREAD		0x0008		/* 0 means allowed */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 141) #define FIBF_NOWRITE		0x0004		/* 0 means allowed */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 142) #define FIBF_NOEXECUTE		0x0002		/* 0 means allowed, ignored under linux */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 143) #define FIBF_NODELETE		0x0001		/* 0 means allowed */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 144) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 145) #define FIBF_OWNER		0x000F		/* Bits pertaining to owner */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 146) #define FIBF_MASK		0xEE0E		/* Bits modified by Linux */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 147) 
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 148) #endif