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