123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218 |
- #ifndef __LINUX_JFFS2_H__
- #define __LINUX_JFFS2_H__
- #define JFFS2_SUPER_MAGIC 0x72b6
- #define JFFS2_OLD_MAGIC_BITMASK 0x1984
- #define JFFS2_MAGIC_BITMASK 0x1985
- #define KSAMTIB_CIGAM_2SFFJ 0x8519
- #define JFFS2_EMPTY_BITMASK 0xffff
- #define JFFS2_DIRTY_BITMASK 0x0000
- #define JFFS2_SUM_MAGIC 0x02851885
- #define JFFS2_MAX_NAME_LEN 254
- #define JFFS2_MIN_DATA_LEN 128
- #define JFFS2_COMPR_NONE 0x00
- #define JFFS2_COMPR_ZERO 0x01
- #define JFFS2_COMPR_RTIME 0x02
- #define JFFS2_COMPR_RUBINMIPS 0x03
- #define JFFS2_COMPR_COPY 0x04
- #define JFFS2_COMPR_DYNRUBIN 0x05
- #define JFFS2_COMPR_ZLIB 0x06
- #define JFFS2_COMPR_LZO 0x07
- #define JFFS2_COMPAT_MASK 0xc000
- #define JFFS2_NODE_ACCURATE 0x2000
- #define JFFS2_FEATURE_INCOMPAT 0xc000
- #define JFFS2_FEATURE_ROCOMPAT 0x8000
- #define JFFS2_FEATURE_RWCOMPAT_COPY 0x4000
- #define JFFS2_FEATURE_RWCOMPAT_DELETE 0x0000
- #define JFFS2_NODETYPE_DIRENT (JFFS2_FEATURE_INCOMPAT | JFFS2_NODE_ACCURATE | 1)
- #define JFFS2_NODETYPE_INODE (JFFS2_FEATURE_INCOMPAT | JFFS2_NODE_ACCURATE | 2)
- #define JFFS2_NODETYPE_CLEANMARKER (JFFS2_FEATURE_RWCOMPAT_DELETE | JFFS2_NODE_ACCURATE | 3)
- #define JFFS2_NODETYPE_PADDING (JFFS2_FEATURE_RWCOMPAT_DELETE | JFFS2_NODE_ACCURATE | 4)
- #define JFFS2_NODETYPE_SUMMARY (JFFS2_FEATURE_RWCOMPAT_DELETE | JFFS2_NODE_ACCURATE | 6)
- #define JFFS2_NODETYPE_XATTR (JFFS2_FEATURE_INCOMPAT | JFFS2_NODE_ACCURATE | 8)
- #define JFFS2_NODETYPE_XREF (JFFS2_FEATURE_INCOMPAT | JFFS2_NODE_ACCURATE | 9)
- #define JFFS2_XPREFIX_USER 1
- #define JFFS2_XPREFIX_SECURITY 2
- #define JFFS2_XPREFIX_ACL_ACCESS 3
- #define JFFS2_XPREFIX_ACL_DEFAULT 4
- #define JFFS2_XPREFIX_TRUSTED 5
- #define JFFS2_ACL_VERSION 0x0001
- #define JFFS2_INO_FLAG_PREREAD 1
- #define JFFS2_INO_FLAG_USERCOMPR 2
- typedef struct {
- uint32_t v32;
- } __attribute__((packed)) jint32_t;
- typedef struct {
- uint32_t m;
- } __attribute__((packed)) jmode_t;
- typedef struct {
- uint16_t v16;
- } __attribute__((packed)) jint16_t;
- struct jffs2_unknown_node
- {
-
- jint16_t magic;
- jint16_t nodetype;
- jint32_t totlen;
- jint32_t hdr_crc;
- } __attribute__((packed));
- struct jffs2_raw_dirent
- {
- jint16_t magic;
- jint16_t nodetype;
- jint32_t totlen;
- jint32_t hdr_crc;
- jint32_t pino;
- jint32_t version;
- jint32_t ino;
- jint32_t mctime;
- uint8_t nsize;
- uint8_t type;
- uint8_t unused[2];
- jint32_t node_crc;
- jint32_t name_crc;
- uint8_t name[0];
- } __attribute__((packed));
- struct jffs2_raw_inode
- {
- jint16_t magic;
- jint16_t nodetype;
- jint32_t totlen;
- jint32_t hdr_crc;
- jint32_t ino;
- jint32_t version;
- jmode_t mode;
- jint16_t uid;
- jint16_t gid;
- jint32_t isize;
- jint32_t atime;
- jint32_t mtime;
- jint32_t ctime;
- jint32_t offset;
- jint32_t csize;
- jint32_t dsize;
- uint8_t compr;
- uint8_t usercompr;
- jint16_t flags;
- jint32_t data_crc;
- jint32_t node_crc;
- uint8_t data[0];
- } __attribute__((packed));
- struct jffs2_raw_xattr {
- jint16_t magic;
- jint16_t nodetype;
- jint32_t totlen;
- jint32_t hdr_crc;
- jint32_t xid;
- jint32_t version;
- uint8_t xprefix;
- uint8_t name_len;
- jint16_t value_len;
- jint32_t data_crc;
- jint32_t node_crc;
- uint8_t data[0];
- } __attribute__((packed));
- struct jffs2_raw_xref
- {
- jint16_t magic;
- jint16_t nodetype;
- jint32_t totlen;
- jint32_t hdr_crc;
- jint32_t ino;
- jint32_t xid;
- jint32_t xseqno;
- jint32_t node_crc;
- } __attribute__((packed));
- struct jffs2_raw_summary
- {
- jint16_t magic;
- jint16_t nodetype;
- jint32_t totlen;
- jint32_t hdr_crc;
- jint32_t sum_num;
- jint32_t cln_mkr;
- jint32_t padded;
- jint32_t sum_crc;
- jint32_t node_crc;
- jint32_t sum[0];
- } __attribute__((packed));
- union jffs2_node_union
- {
- struct jffs2_raw_inode i;
- struct jffs2_raw_dirent d;
- struct jffs2_raw_xattr x;
- struct jffs2_raw_xref r;
- struct jffs2_raw_summary s;
- struct jffs2_unknown_node u;
- };
- #endif
|