mirror of
https://github.com/linux-sunxi/u-boot-sunxi.git
synced 2024-02-12 11:16:03 +08:00
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>
This commit is contained in:

committed by
Wolfgang Denk

parent
70741004dc
commit
9b7076229e
@ -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));
|
||||
|
||||
|
Reference in New Issue
Block a user