aboutsummaryrefslogtreecommitdiff
path: root/libc/kernel/uapi/linux/bcache.h
diff options
context:
space:
mode:
Diffstat (limited to 'libc/kernel/uapi/linux/bcache.h')
-rw-r--r--libc/kernel/uapi/linux/bcache.h50
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;