diff options
Diffstat (limited to 'libc/kernel/uapi/linux/bcache.h')
-rw-r--r-- | libc/kernel/uapi/linux/bcache.h | 50 |
1 files changed, 46 insertions, 4 deletions
diff --git a/libc/kernel/uapi/linux/bcache.h b/libc/kernel/uapi/linux/bcache.h index 1bee0a30a..25b69875b 100644 --- a/libc/kernel/uapi/linux/bcache.h +++ b/libc/kernel/uapi/linux/bcache.h @@ -54,15 +54,55 @@ struct bkey { #define BCACHE_SB_VERSION_BDEV 1 #define BCACHE_SB_VERSION_CDEV_WITH_UUID 3 #define BCACHE_SB_VERSION_BDEV_WITH_OFFSET 4 -#define BCACHE_SB_MAX_VERSION 4 +#define BCACHE_SB_VERSION_CDEV_WITH_FEATURES 5 +#define BCACHE_SB_VERSION_BDEV_WITH_FEATURES 6 +#define BCACHE_SB_MAX_VERSION 6 #define SB_SECTOR 8 +#define SB_OFFSET (SB_SECTOR << SECTOR_SHIFT) #define SB_SIZE 4096 #define SB_LABEL_SIZE 32 #define SB_JOURNAL_BUCKETS 256U #define MAX_CACHES_PER_SET 8 #define BDEV_DATA_START_DEFAULT 16 +struct cache_sb_disk { + __le64 csum; + __le64 offset; + __le64 version; + __u8 magic[16]; + __u8 uuid[16]; + union { + __u8 set_uuid[16]; + __le64 set_magic; + }; + __u8 label[SB_LABEL_SIZE]; + __le64 flags; + __le64 seq; + __le64 feature_compat; + __le64 feature_incompat; + __le64 feature_ro_compat; + __le64 pad[5]; + union { + struct { + __le64 nbuckets; + __le16 block_size; + __le16 bucket_size; + __le16 nr_in_set; + __le16 nr_this_dev; + }; + struct { + __le64 data_offset; + }; + }; + __le32 last_mount; + __le16 first_bucket; + union { + __le16 njournal_buckets; + __le16 keys; + }; + __le64 d[SB_JOURNAL_BUCKETS]; + __le16 obso_bucket_size_hi; +}; struct cache_sb { - __u64 csum; __u64 offset; __u64 version; __u8 magic[16]; @@ -74,14 +114,16 @@ struct cache_sb { __u8 label[SB_LABEL_SIZE]; __u64 flags; __u64 seq; - __u64 pad[8]; + __u64 feature_compat; + __u64 feature_incompat; + __u64 feature_ro_compat; union { struct { __u64 nbuckets; __u16 block_size; - __u16 bucket_size; __u16 nr_in_set; __u16 nr_this_dev; + __u32 bucket_size; }; struct { __u64 data_offset; |