diff options
Diffstat (limited to 'bcache.h')
-rw-r--r-- | bcache.h | 63 |
1 files changed, 24 insertions, 39 deletions
@@ -5,55 +5,40 @@ static const char bcache_magic[] = { 0xc6, 0x85, 0x73, 0xf6, 0x4e, 0x1a, 0x45, 0xca, 0x82, 0x65, 0xf5, 0x7f, 0x48, 0xba, 0x6d, 0x81 }; -#define SB_LABEL_SIZE 32 +#define SB_SECTOR 8 +#define SB_LABEL_SIZE 32 struct cache_sb { - uint64_t csum; - uint64_t offset_this_sb; - uint64_t version; + uint64_t csum; + uint64_t offset; /* sector where this sb was written */ + uint64_t version; #define CACHE_BACKING_DEV 1 - uint8_t magic[16]; + uint8_t magic[16]; - uint8_t uuid[16]; - uint8_t set_uuid[16]; - uint8_t label[SB_LABEL_SIZE]; + uint8_t uuid[16]; + union { + uint8_t set_uuid[16]; + uint64_t set_magic; + }; + uint8_t label[SB_LABEL_SIZE]; -#define CACHE_SYNC (1U << 0) + uint64_t flags; + uint64_t seq; + uint64_t pad[8]; -#define BDEV_WRITEBACK_BIT 0U + uint64_t nbuckets; /* device size */ + uint16_t block_size; /* sectors */ + uint16_t bucket_size; /* sectors */ -#define BDEV_STATE_NONE 0U -#define BDEV_STATE_CLEAN 1U -#define BDEV_STATE_DIRTY 2U -#define BDEV_STATE_STALE 3U - uint64_t flags; - uint64_t sequence; - uint64_t pad[8]; + uint16_t nr_in_set; + uint16_t nr_this_dev; - uint64_t nbuckets; /* device size */ - uint16_t block_size; /* sectors */ - uint16_t bucket_size; /* sectors */ + uint32_t last_mount; /* time_t */ - uint16_t nr_in_set; - uint16_t nr_this_dev; - - uint32_t last_mount; /* time_t */ - - uint16_t first_bucket; - uint16_t njournal_buckets; - uint64_t journal_buckets[]; + uint16_t first_bucket; + uint16_t keys; /* number of journal buckets */ + uint64_t d[512]; /* journal buckets */ }; -struct bkey { - uint64_t header; - uint64_t key; - uint64_t ptr[]; -}; - -struct bucket_disk { - uint16_t priority; - uint8_t generation; -} __attribute((packed)); - #endif |