X-Git-Url: http://www.aleph1.co.uk/gitweb/?p=yaffs2.git;a=blobdiff_plain;f=yaffs_guts.h;fp=yaffs_guts.h;h=b0aca333fe706330bafe0f5ad983ab5b54b3bcf2;hp=9cd554e7577b726b2ff2ff9ee93b7509c7f0323e;hb=bf0323aab4b4a577fcb2dafc573b443aabcedc02;hpb=ba5e2f04db2bf57788cf6e326f54bd858296c29e diff --git a/yaffs_guts.h b/yaffs_guts.h index 9cd554e..b0aca33 100644 --- a/yaffs_guts.h +++ b/yaffs_guts.h @@ -79,7 +79,6 @@ /* Binary data version stamps */ #define YAFFS_SUMMARY_VERSION 1 -#define YAFFS_CHECKPOINT_VERSION 7 #ifdef CONFIG_YAFFS_UNICODE #define YAFFS_MAX_NAME_LENGTH 127 @@ -497,26 +496,6 @@ struct yaffs_obj_bucket { int count; }; -/* yaffs_checkpt_obj holds the definition of an object as dumped - * by checkpointing. - */ - -struct yaffs_checkpt_obj { - int struct_type; - u32 obj_id; - u32 parent_id; - int hdr_chunk; - u32 variant_type:3; /* enum yaffs_obj_type */ - u8 deleted:1; - u8 soft_del:1; - u8 unlinked:1; - u8 fake:1; - u8 rename_allowed:1; - u8 unlink_allowed:1; - u8 serial; - int n_data_chunks; - loff_t size_or_equiv_obj; -}; /*--------------------- Temporary buffers ---------------- * @@ -818,6 +797,37 @@ struct yaffs_dev { }; +/* + * Checkpointing definitions. + */ + +#define YAFFS_CHECKPOINT_VERSION 8 + +/* yaffs_checkpt_obj holds the definition of an object as dumped + * by checkpointing. + */ + + +/* Checkpint object bits in bitfield: offset, length */ +#define CHECKPOINT_VARIANT_BITS 0, 3 +#define CHECKPOINT_DELETED_BITS 3, 1 +#define CHECKPOINT_SOFT_DEL_BITS 4, 1 +#define CHECKPOINT_UNLINKED_BITS 5, 1 +#define CHECKPOINT_FAKE_BITS 6, 1 +#define CHECKPOINT_RENAME_ALLOWED_BITS 7, 1 +#define CHECKPOINT_UNLINK_ALLOWED_BITS 8, 1 +#define CHECKPOINT_SERIAL_BITS 9, 8 + +struct yaffs_checkpt_obj { + int struct_type; + u32 obj_id; + u32 parent_id; + int hdr_chunk; + u32 bit_field; + int n_data_chunks; + loff_t size_or_equiv_obj; +}; + /* The CheckpointDevice structure holds the device information that changes *at runtime and must be preserved over unmount/mount cycles. */