diff options
Diffstat (limited to 'fs/jffs2/summary.h')
-rw-r--r-- | fs/jffs2/summary.h | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/fs/jffs2/summary.h b/fs/jffs2/summary.h index b7a678be1709..a3b66c18aae9 100644 --- a/fs/jffs2/summary.h +++ b/fs/jffs2/summary.h | |||
@@ -45,6 +45,8 @@ | |||
45 | #define JFFS2_SUMMARY_NOSUM_SIZE 0xffffffff | 45 | #define JFFS2_SUMMARY_NOSUM_SIZE 0xffffffff |
46 | #define JFFS2_SUMMARY_INODE_SIZE (sizeof(struct jffs2_sum_inode_flash)) | 46 | #define JFFS2_SUMMARY_INODE_SIZE (sizeof(struct jffs2_sum_inode_flash)) |
47 | #define JFFS2_SUMMARY_DIRENT_SIZE(x) (sizeof(struct jffs2_sum_dirent_flash) + (x)) | 47 | #define JFFS2_SUMMARY_DIRENT_SIZE(x) (sizeof(struct jffs2_sum_dirent_flash) + (x)) |
48 | #define JFFS2_SUMMARY_XATTR_SIZE (sizeof(struct jffs2_sum_xattr_flash)) | ||
49 | #define JFFS2_SUMMARY_XREF_SIZE (sizeof(struct jffs2_sum_xref_flash)) | ||
48 | 50 | ||
49 | /* Summary structures used on flash */ | 51 | /* Summary structures used on flash */ |
50 | 52 | ||
@@ -75,11 +77,28 @@ struct jffs2_sum_dirent_flash | |||
75 | uint8_t name[0]; /* dirent name */ | 77 | uint8_t name[0]; /* dirent name */ |
76 | } __attribute__((packed)); | 78 | } __attribute__((packed)); |
77 | 79 | ||
80 | struct jffs2_sum_xattr_flash | ||
81 | { | ||
82 | jint16_t nodetype; /* == JFFS2_NODETYPE_XATR */ | ||
83 | jint32_t xid; /* xattr identifier */ | ||
84 | jint32_t version; /* version number */ | ||
85 | jint32_t offset; /* offset on jeb */ | ||
86 | jint32_t totlen; /* node length */ | ||
87 | } __attribute__((packed)); | ||
88 | |||
89 | struct jffs2_sum_xref_flash | ||
90 | { | ||
91 | jint16_t nodetype; /* == JFFS2_NODETYPE_XREF */ | ||
92 | jint32_t offset; /* offset on jeb */ | ||
93 | } __attribute__((packed)); | ||
94 | |||
78 | union jffs2_sum_flash | 95 | union jffs2_sum_flash |
79 | { | 96 | { |
80 | struct jffs2_sum_unknown_flash u; | 97 | struct jffs2_sum_unknown_flash u; |
81 | struct jffs2_sum_inode_flash i; | 98 | struct jffs2_sum_inode_flash i; |
82 | struct jffs2_sum_dirent_flash d; | 99 | struct jffs2_sum_dirent_flash d; |
100 | struct jffs2_sum_xattr_flash x; | ||
101 | struct jffs2_sum_xref_flash r; | ||
83 | }; | 102 | }; |
84 | 103 | ||
85 | /* Summary structures used in the memory */ | 104 | /* Summary structures used in the memory */ |
@@ -114,11 +133,30 @@ struct jffs2_sum_dirent_mem | |||
114 | uint8_t name[0]; /* dirent name */ | 133 | uint8_t name[0]; /* dirent name */ |
115 | } __attribute__((packed)); | 134 | } __attribute__((packed)); |
116 | 135 | ||
136 | struct jffs2_sum_xattr_mem | ||
137 | { | ||
138 | union jffs2_sum_mem *next; | ||
139 | jint16_t nodetype; | ||
140 | jint32_t xid; | ||
141 | jint32_t version; | ||
142 | jint32_t offset; | ||
143 | jint32_t totlen; | ||
144 | } __attribute__((packed)); | ||
145 | |||
146 | struct jffs2_sum_xref_mem | ||
147 | { | ||
148 | union jffs2_sum_mem *next; | ||
149 | jint16_t nodetype; | ||
150 | jint32_t offset; | ||
151 | } __attribute__((packed)); | ||
152 | |||
117 | union jffs2_sum_mem | 153 | union jffs2_sum_mem |
118 | { | 154 | { |
119 | struct jffs2_sum_unknown_mem u; | 155 | struct jffs2_sum_unknown_mem u; |
120 | struct jffs2_sum_inode_mem i; | 156 | struct jffs2_sum_inode_mem i; |
121 | struct jffs2_sum_dirent_mem d; | 157 | struct jffs2_sum_dirent_mem d; |
158 | struct jffs2_sum_xattr_mem x; | ||
159 | struct jffs2_sum_xref_mem r; | ||
122 | }; | 160 | }; |
123 | 161 | ||
124 | /* Summary related information stored in superblock */ | 162 | /* Summary related information stored in superblock */ |
@@ -159,6 +197,8 @@ int jffs2_sum_write_sumnode(struct jffs2_sb_info *c); | |||
159 | int jffs2_sum_add_padding_mem(struct jffs2_summary *s, uint32_t size); | 197 | int jffs2_sum_add_padding_mem(struct jffs2_summary *s, uint32_t size); |
160 | int jffs2_sum_add_inode_mem(struct jffs2_summary *s, struct jffs2_raw_inode *ri, uint32_t ofs); | 198 | int jffs2_sum_add_inode_mem(struct jffs2_summary *s, struct jffs2_raw_inode *ri, uint32_t ofs); |
161 | int jffs2_sum_add_dirent_mem(struct jffs2_summary *s, struct jffs2_raw_dirent *rd, uint32_t ofs); | 199 | int jffs2_sum_add_dirent_mem(struct jffs2_summary *s, struct jffs2_raw_dirent *rd, uint32_t ofs); |
200 | int jffs2_sum_add_xattr_mem(struct jffs2_summary *s, struct jffs2_raw_xattr *rx, uint32_t ofs); | ||
201 | int jffs2_sum_add_xref_mem(struct jffs2_summary *s, struct jffs2_raw_xref *rr, uint32_t ofs); | ||
162 | int jffs2_sum_scan_sumnode(struct jffs2_sb_info *c, struct jffs2_eraseblock *jeb, | 202 | int jffs2_sum_scan_sumnode(struct jffs2_sb_info *c, struct jffs2_eraseblock *jeb, |
163 | uint32_t ofs, uint32_t *pseudo_random); | 203 | uint32_t ofs, uint32_t *pseudo_random); |
164 | 204 | ||
@@ -176,6 +216,8 @@ int jffs2_sum_scan_sumnode(struct jffs2_sb_info *c, struct jffs2_eraseblock *jeb | |||
176 | #define jffs2_sum_add_padding_mem(a,b) | 216 | #define jffs2_sum_add_padding_mem(a,b) |
177 | #define jffs2_sum_add_inode_mem(a,b,c) | 217 | #define jffs2_sum_add_inode_mem(a,b,c) |
178 | #define jffs2_sum_add_dirent_mem(a,b,c) | 218 | #define jffs2_sum_add_dirent_mem(a,b,c) |
219 | #define jffs2_sum_add_xattr_mem(a,b,c) | ||
220 | #define jffs2_sum_add_xref_mem(a,b,c) | ||
179 | #define jffs2_sum_scan_sumnode(a,b,c,d) (0) | 221 | #define jffs2_sum_scan_sumnode(a,b,c,d) (0) |
180 | 222 | ||
181 | #endif /* CONFIG_JFFS2_SUMMARY */ | 223 | #endif /* CONFIG_JFFS2_SUMMARY */ |