summaryrefslogtreecommitdiff
path: root/yaffs_guts.h
diff options
context:
space:
mode:
authorCharles Manning <cdhmanning@gmail.com>2011-04-28 15:57:52 +1200
committerCharles Manning <cdhmanning@gmail.com>2011-04-28 15:57:52 +1200
commitc4e8d85455d0acf2a3da23c20cd2db66d30caf1b (patch)
treeabfa55c23a80b73f76a001fd7d32a028983ee9ce /yaffs_guts.h
parent7715144e7d55b2854f907001c432348e4caa5954 (diff)
parent447f47497bcd9acf7e59823a4e43888356200dc9 (diff)
Merge branch 'block-summary'
Conflicts: yaffs_vfs_multi.c Signed-off-by: Charles Manning <cdhmanning@gmail.com>
Diffstat (limited to 'yaffs_guts.h')
-rw-r--r--yaffs_guts.h18
1 files changed, 15 insertions, 3 deletions
diff --git a/yaffs_guts.h b/yaffs_guts.h
index 77c05d3..6ec8a47 100644
--- a/yaffs_guts.h
+++ b/yaffs_guts.h
@@ -78,10 +78,12 @@
#define YAFFS_OBJECTID_UNLINKED 3
#define YAFFS_OBJECTID_DELETED 4
+/* Fake object Id for summary data */
+#define YAFFS_OBJECTID_SUMMARY 0x10
+
/* Pseudo object ids for checkpointing */
-#define YAFFS_OBJECTID_SB_HEADER 0x10
#define YAFFS_OBJECTID_CHECKPOINT_DATA 0x20
-#define YAFFS_SEQUENCE_CHECKPOINT_DATA 0x21
+#define YAFFS_SEQUENCE_CHECKPOINT_DATA 0x21
#define YAFFS_MAX_SHORT_OP_CACHES 20
@@ -278,6 +280,7 @@ struct yaffs_block_info {
Block should be prioritised for GC */
u32 chunk_error_strikes:3; /* How many times we've had ecc etc
failures on this block and tried to reuse it */
+ u32 has_summary:1; /* The block has a summary */
u32 has_shrink_hdr:1; /* This block has at least one shrink header */
u32 seq_number; /* block sequence number for yaffs2 */
@@ -582,6 +585,8 @@ struct yaffs_param {
int auto_unicode;
#endif
int always_check_erased; /* Force chunk erased check always on */
+
+ int disable_summary;
};
struct yaffs_dev {
@@ -681,6 +686,7 @@ struct yaffs_dev {
unsigned gc_block;
unsigned gc_chunk;
unsigned gc_skip;
+ struct yaffs_summary_tags *gc_sum_tags;
/* Special directories */
struct yaffs_obj *root_dir;
@@ -723,7 +729,11 @@ struct yaffs_dev {
/* Dirty directory handling */
struct list_head dirty_dirs; /* List of dirty directories */
- /* Statistcs */
+ /* Summary */
+ int chunks_per_summary;
+ struct yaffs_summary_tags *sum_tags;
+
+ /* Statistics */
u32 n_page_writes;
u32 n_page_reads;
u32 n_erasures;
@@ -744,6 +754,8 @@ struct yaffs_dev {
u32 n_unmarked_deletions;
u32 refresh_count;
u32 cache_hits;
+ u32 tags_used;
+ u32 summary_used;
};