1*cda5da8dSAndroid Build Coastguard Worker /* 2*cda5da8dSAndroid Build Coastguard Worker * This file is auto-generated. Modifications will be lost. 3*cda5da8dSAndroid Build Coastguard Worker * 4*cda5da8dSAndroid Build Coastguard Worker * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/ 5*cda5da8dSAndroid Build Coastguard Worker * for more information. 6*cda5da8dSAndroid Build Coastguard Worker */ 7*cda5da8dSAndroid Build Coastguard Worker #ifndef __LINUX_JFFS2_H__ 8*cda5da8dSAndroid Build Coastguard Worker #define __LINUX_JFFS2_H__ 9*cda5da8dSAndroid Build Coastguard Worker #include <linux/types.h> 10*cda5da8dSAndroid Build Coastguard Worker #include <linux/magic.h> 11*cda5da8dSAndroid Build Coastguard Worker #define JFFS2_OLD_MAGIC_BITMASK 0x1984 12*cda5da8dSAndroid Build Coastguard Worker #define JFFS2_MAGIC_BITMASK 0x1985 13*cda5da8dSAndroid Build Coastguard Worker #define KSAMTIB_CIGAM_2SFFJ 0x8519 14*cda5da8dSAndroid Build Coastguard Worker #define JFFS2_EMPTY_BITMASK 0xffff 15*cda5da8dSAndroid Build Coastguard Worker #define JFFS2_DIRTY_BITMASK 0x0000 16*cda5da8dSAndroid Build Coastguard Worker #define JFFS2_SUM_MAGIC 0x02851885 17*cda5da8dSAndroid Build Coastguard Worker #define JFFS2_MAX_NAME_LEN 254 18*cda5da8dSAndroid Build Coastguard Worker #define JFFS2_MIN_DATA_LEN 128 19*cda5da8dSAndroid Build Coastguard Worker #define JFFS2_COMPR_NONE 0x00 20*cda5da8dSAndroid Build Coastguard Worker #define JFFS2_COMPR_ZERO 0x01 21*cda5da8dSAndroid Build Coastguard Worker #define JFFS2_COMPR_RTIME 0x02 22*cda5da8dSAndroid Build Coastguard Worker #define JFFS2_COMPR_RUBINMIPS 0x03 23*cda5da8dSAndroid Build Coastguard Worker #define JFFS2_COMPR_COPY 0x04 24*cda5da8dSAndroid Build Coastguard Worker #define JFFS2_COMPR_DYNRUBIN 0x05 25*cda5da8dSAndroid Build Coastguard Worker #define JFFS2_COMPR_ZLIB 0x06 26*cda5da8dSAndroid Build Coastguard Worker #define JFFS2_COMPR_LZO 0x07 27*cda5da8dSAndroid Build Coastguard Worker #define JFFS2_COMPAT_MASK 0xc000 28*cda5da8dSAndroid Build Coastguard Worker #define JFFS2_NODE_ACCURATE 0x2000 29*cda5da8dSAndroid Build Coastguard Worker #define JFFS2_FEATURE_INCOMPAT 0xc000 30*cda5da8dSAndroid Build Coastguard Worker #define JFFS2_FEATURE_ROCOMPAT 0x8000 31*cda5da8dSAndroid Build Coastguard Worker #define JFFS2_FEATURE_RWCOMPAT_COPY 0x4000 32*cda5da8dSAndroid Build Coastguard Worker #define JFFS2_FEATURE_RWCOMPAT_DELETE 0x0000 33*cda5da8dSAndroid Build Coastguard Worker #define JFFS2_NODETYPE_DIRENT (JFFS2_FEATURE_INCOMPAT | JFFS2_NODE_ACCURATE | 1) 34*cda5da8dSAndroid Build Coastguard Worker #define JFFS2_NODETYPE_INODE (JFFS2_FEATURE_INCOMPAT | JFFS2_NODE_ACCURATE | 2) 35*cda5da8dSAndroid Build Coastguard Worker #define JFFS2_NODETYPE_CLEANMARKER (JFFS2_FEATURE_RWCOMPAT_DELETE | JFFS2_NODE_ACCURATE | 3) 36*cda5da8dSAndroid Build Coastguard Worker #define JFFS2_NODETYPE_PADDING (JFFS2_FEATURE_RWCOMPAT_DELETE | JFFS2_NODE_ACCURATE | 4) 37*cda5da8dSAndroid Build Coastguard Worker #define JFFS2_NODETYPE_SUMMARY (JFFS2_FEATURE_RWCOMPAT_DELETE | JFFS2_NODE_ACCURATE | 6) 38*cda5da8dSAndroid Build Coastguard Worker #define JFFS2_NODETYPE_XATTR (JFFS2_FEATURE_INCOMPAT | JFFS2_NODE_ACCURATE | 8) 39*cda5da8dSAndroid Build Coastguard Worker #define JFFS2_NODETYPE_XREF (JFFS2_FEATURE_INCOMPAT | JFFS2_NODE_ACCURATE | 9) 40*cda5da8dSAndroid Build Coastguard Worker #define JFFS2_XPREFIX_USER 1 41*cda5da8dSAndroid Build Coastguard Worker #define JFFS2_XPREFIX_SECURITY 2 42*cda5da8dSAndroid Build Coastguard Worker #define JFFS2_XPREFIX_ACL_ACCESS 3 43*cda5da8dSAndroid Build Coastguard Worker #define JFFS2_XPREFIX_ACL_DEFAULT 4 44*cda5da8dSAndroid Build Coastguard Worker #define JFFS2_XPREFIX_TRUSTED 5 45*cda5da8dSAndroid Build Coastguard Worker #define JFFS2_ACL_VERSION 0x0001 46*cda5da8dSAndroid Build Coastguard Worker #define JFFS2_INO_FLAG_PREREAD 1 47*cda5da8dSAndroid Build Coastguard Worker #define JFFS2_INO_FLAG_USERCOMPR 2 48*cda5da8dSAndroid Build Coastguard Worker typedef struct { 49*cda5da8dSAndroid Build Coastguard Worker __u32 v32; 50*cda5da8dSAndroid Build Coastguard Worker } __attribute__((packed)) jint32_t; 51*cda5da8dSAndroid Build Coastguard Worker typedef struct { 52*cda5da8dSAndroid Build Coastguard Worker __u32 m; 53*cda5da8dSAndroid Build Coastguard Worker } __attribute__((packed)) jmode_t; 54*cda5da8dSAndroid Build Coastguard Worker typedef struct { 55*cda5da8dSAndroid Build Coastguard Worker __u16 v16; 56*cda5da8dSAndroid Build Coastguard Worker } __attribute__((packed)) jint16_t; 57*cda5da8dSAndroid Build Coastguard Worker struct jffs2_unknown_node { 58*cda5da8dSAndroid Build Coastguard Worker jint16_t magic; 59*cda5da8dSAndroid Build Coastguard Worker jint16_t nodetype; 60*cda5da8dSAndroid Build Coastguard Worker jint32_t totlen; 61*cda5da8dSAndroid Build Coastguard Worker jint32_t hdr_crc; 62*cda5da8dSAndroid Build Coastguard Worker }; 63*cda5da8dSAndroid Build Coastguard Worker struct jffs2_raw_dirent { 64*cda5da8dSAndroid Build Coastguard Worker jint16_t magic; 65*cda5da8dSAndroid Build Coastguard Worker jint16_t nodetype; 66*cda5da8dSAndroid Build Coastguard Worker jint32_t totlen; 67*cda5da8dSAndroid Build Coastguard Worker jint32_t hdr_crc; 68*cda5da8dSAndroid Build Coastguard Worker jint32_t pino; 69*cda5da8dSAndroid Build Coastguard Worker jint32_t version; 70*cda5da8dSAndroid Build Coastguard Worker jint32_t ino; 71*cda5da8dSAndroid Build Coastguard Worker jint32_t mctime; 72*cda5da8dSAndroid Build Coastguard Worker __u8 nsize; 73*cda5da8dSAndroid Build Coastguard Worker __u8 type; 74*cda5da8dSAndroid Build Coastguard Worker __u8 unused[2]; 75*cda5da8dSAndroid Build Coastguard Worker jint32_t node_crc; 76*cda5da8dSAndroid Build Coastguard Worker jint32_t name_crc; 77*cda5da8dSAndroid Build Coastguard Worker __u8 name[]; 78*cda5da8dSAndroid Build Coastguard Worker }; 79*cda5da8dSAndroid Build Coastguard Worker struct jffs2_raw_inode { 80*cda5da8dSAndroid Build Coastguard Worker jint16_t magic; 81*cda5da8dSAndroid Build Coastguard Worker jint16_t nodetype; 82*cda5da8dSAndroid Build Coastguard Worker jint32_t totlen; 83*cda5da8dSAndroid Build Coastguard Worker jint32_t hdr_crc; 84*cda5da8dSAndroid Build Coastguard Worker jint32_t ino; 85*cda5da8dSAndroid Build Coastguard Worker jint32_t version; 86*cda5da8dSAndroid Build Coastguard Worker jmode_t mode; 87*cda5da8dSAndroid Build Coastguard Worker jint16_t uid; 88*cda5da8dSAndroid Build Coastguard Worker jint16_t gid; 89*cda5da8dSAndroid Build Coastguard Worker jint32_t isize; 90*cda5da8dSAndroid Build Coastguard Worker jint32_t atime; 91*cda5da8dSAndroid Build Coastguard Worker jint32_t mtime; 92*cda5da8dSAndroid Build Coastguard Worker jint32_t ctime; 93*cda5da8dSAndroid Build Coastguard Worker jint32_t offset; 94*cda5da8dSAndroid Build Coastguard Worker jint32_t csize; 95*cda5da8dSAndroid Build Coastguard Worker jint32_t dsize; 96*cda5da8dSAndroid Build Coastguard Worker __u8 compr; 97*cda5da8dSAndroid Build Coastguard Worker __u8 usercompr; 98*cda5da8dSAndroid Build Coastguard Worker jint16_t flags; 99*cda5da8dSAndroid Build Coastguard Worker jint32_t data_crc; 100*cda5da8dSAndroid Build Coastguard Worker jint32_t node_crc; 101*cda5da8dSAndroid Build Coastguard Worker __u8 data[]; 102*cda5da8dSAndroid Build Coastguard Worker }; 103*cda5da8dSAndroid Build Coastguard Worker struct jffs2_raw_xattr { 104*cda5da8dSAndroid Build Coastguard Worker jint16_t magic; 105*cda5da8dSAndroid Build Coastguard Worker jint16_t nodetype; 106*cda5da8dSAndroid Build Coastguard Worker jint32_t totlen; 107*cda5da8dSAndroid Build Coastguard Worker jint32_t hdr_crc; 108*cda5da8dSAndroid Build Coastguard Worker jint32_t xid; 109*cda5da8dSAndroid Build Coastguard Worker jint32_t version; 110*cda5da8dSAndroid Build Coastguard Worker __u8 xprefix; 111*cda5da8dSAndroid Build Coastguard Worker __u8 name_len; 112*cda5da8dSAndroid Build Coastguard Worker jint16_t value_len; 113*cda5da8dSAndroid Build Coastguard Worker jint32_t data_crc; 114*cda5da8dSAndroid Build Coastguard Worker jint32_t node_crc; 115*cda5da8dSAndroid Build Coastguard Worker __u8 data[]; 116*cda5da8dSAndroid Build Coastguard Worker } __attribute__((packed)); 117*cda5da8dSAndroid Build Coastguard Worker struct jffs2_raw_xref { 118*cda5da8dSAndroid Build Coastguard Worker jint16_t magic; 119*cda5da8dSAndroid Build Coastguard Worker jint16_t nodetype; 120*cda5da8dSAndroid Build Coastguard Worker jint32_t totlen; 121*cda5da8dSAndroid Build Coastguard Worker jint32_t hdr_crc; 122*cda5da8dSAndroid Build Coastguard Worker jint32_t ino; 123*cda5da8dSAndroid Build Coastguard Worker jint32_t xid; 124*cda5da8dSAndroid Build Coastguard Worker jint32_t xseqno; 125*cda5da8dSAndroid Build Coastguard Worker jint32_t node_crc; 126*cda5da8dSAndroid Build Coastguard Worker } __attribute__((packed)); 127*cda5da8dSAndroid Build Coastguard Worker struct jffs2_raw_summary { 128*cda5da8dSAndroid Build Coastguard Worker jint16_t magic; 129*cda5da8dSAndroid Build Coastguard Worker jint16_t nodetype; 130*cda5da8dSAndroid Build Coastguard Worker jint32_t totlen; 131*cda5da8dSAndroid Build Coastguard Worker jint32_t hdr_crc; 132*cda5da8dSAndroid Build Coastguard Worker jint32_t sum_num; 133*cda5da8dSAndroid Build Coastguard Worker jint32_t cln_mkr; 134*cda5da8dSAndroid Build Coastguard Worker jint32_t padded; 135*cda5da8dSAndroid Build Coastguard Worker jint32_t sum_crc; 136*cda5da8dSAndroid Build Coastguard Worker jint32_t node_crc; 137*cda5da8dSAndroid Build Coastguard Worker jint32_t sum[]; 138*cda5da8dSAndroid Build Coastguard Worker }; 139*cda5da8dSAndroid Build Coastguard Worker union jffs2_node_union { 140*cda5da8dSAndroid Build Coastguard Worker struct jffs2_raw_inode i; 141*cda5da8dSAndroid Build Coastguard Worker struct jffs2_raw_dirent d; 142*cda5da8dSAndroid Build Coastguard Worker struct jffs2_raw_xattr x; 143*cda5da8dSAndroid Build Coastguard Worker struct jffs2_raw_xref r; 144*cda5da8dSAndroid Build Coastguard Worker struct jffs2_raw_summary s; 145*cda5da8dSAndroid Build Coastguard Worker struct jffs2_unknown_node u; 146*cda5da8dSAndroid Build Coastguard Worker }; 147*cda5da8dSAndroid Build Coastguard Worker union jffs2_device_node { 148*cda5da8dSAndroid Build Coastguard Worker jint16_t old_id; 149*cda5da8dSAndroid Build Coastguard Worker jint32_t new_id; 150*cda5da8dSAndroid Build Coastguard Worker }; 151*cda5da8dSAndroid Build Coastguard Worker #endif 152