diff options
| author | Ilya Yanok <yanok@emcraft.com> | 2008-11-13 19:49:35 +0300 | 
|---|---|---|
| committer | Wolfgang Denk <wd@denx.de> | 2008-12-09 23:39:59 +0100 | 
| commit | 9b7076229ec6a958bd835ab70745f7676297ce82 (patch) | |
| tree | daf8d517fffc53bbc0614337183e85d0210d0f29 /include/jffs2/jffs2.h | |
| parent | 70741004dc28946cd82c7af6789c4ddb3fc94526 (diff) | |
| download | olio-uboot-2014.01-9b7076229ec6a958bd835ab70745f7676297ce82.tar.xz olio-uboot-2014.01-9b7076229ec6a958bd835ab70745f7676297ce82.zip | |
jffs2: summary support
This patch adds support for reading fs information from summary
node instead of scanning full eraseblock.
Signed-off-by: Ilya Yanok <yanok@emcraft.com>
Diffstat (limited to 'include/jffs2/jffs2.h')
| -rw-r--r-- | include/jffs2/jffs2.h | 19 | 
1 files changed, 19 insertions, 0 deletions
| diff --git a/include/jffs2/jffs2.h b/include/jffs2/jffs2.h index d142cd1bc..ed96babf6 100644 --- a/include/jffs2/jffs2.h +++ b/include/jffs2/jffs2.h @@ -50,6 +50,9 @@  #define JFFS2_EMPTY_BITMASK 0xffff  #define JFFS2_DIRTY_BITMASK 0x0000 +/* Summary node MAGIC marker */ +#define JFFS2_SUM_MAGIC	0x02851885 +  /* We only allow a single char for length, and 0xFF is empty flash so     we don't want it confused with a real length. Hence max 254.  */ @@ -89,6 +92,7 @@  #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)  /* Maybe later... */  /*#define JFFS2_NODETYPE_CHECKPOINT (JFFS2_FEATURE_RWCOMPAT_DELETE | JFFS2_NODE_ACCURATE | 3) */ @@ -166,9 +170,24 @@ struct jffs2_raw_inode  /*	__u8 data[dsize]; */  } __attribute__((packed)); +struct jffs2_raw_summary +{ +	__u16 magic; +	__u16 nodetype; 	/* = JFFS2_NODETYPE_SUMMARY */ +	__u32 totlen; +	__u32 hdr_crc; +	__u32 sum_num;	/* number of sum entries*/ +	__u32 cln_mkr;	/* clean marker size, 0 = no cleanmarker */ +	__u32 padded;	/* sum of the size of padding nodes */ +	__u32 sum_crc;	/* summary information crc */ +	__u32 node_crc; 	/* node crc */ +	__u32 sum[0]; 	/* inode summary info */ +}; +  union jffs2_node_union {  	struct jffs2_raw_inode i;  	struct jffs2_raw_dirent d; +	struct jffs2_raw_summary s;  	struct jffs2_unknown_node u;  } __attribute__((packed)); |