diff options
author | Kent Overstreet <kent.overstreet@gmail.com> | 2018-09-30 18:39:20 -0400 |
---|---|---|
committer | Kent Overstreet <kent.overstreet@gmail.com> | 2018-11-01 15:13:29 -0400 |
commit | 0c57ae723b3cfde240dd41774fc4794650a9373e (patch) | |
tree | 1578ace2d640adcc838fcc22a20e2c49e7e69d96 | |
parent | 76fef698480bab60ccaf3ee34611e1fa99a0d1a1 (diff) |
bcachefs: BCH_EXTENT_ENTRY_TYPES()
-rw-r--r-- | fs/bcachefs/bcachefs_format.h | 24 | ||||
-rw-r--r-- | fs/bcachefs/extents.h | 13 |
2 files changed, 19 insertions, 18 deletions
diff --git a/fs/bcachefs/bcachefs_format.h b/fs/bcachefs/bcachefs_format.h index f1814f4caf21..7a728cdc1385 100644 --- a/fs/bcachefs/bcachefs_format.h +++ b/fs/bcachefs/bcachefs_format.h @@ -456,15 +456,19 @@ enum bch_compression_type { BCH_COMPRESSION_NR = 5, }; +#define BCH_EXTENT_ENTRY_TYPES() \ + x(ptr, 0) \ + x(crc32, 1) \ + x(crc64, 2) \ + x(crc128, 3) +#define BCH_EXTENT_ENTRY_MAX 4 + enum bch_extent_entry_type { - BCH_EXTENT_ENTRY_ptr = 0, - BCH_EXTENT_ENTRY_crc32 = 1, - BCH_EXTENT_ENTRY_crc64 = 2, - BCH_EXTENT_ENTRY_crc128 = 3, +#define x(f, n) BCH_EXTENT_ENTRY_##f = n, + BCH_EXTENT_ENTRY_TYPES() +#undef x }; -#define BCH_EXTENT_ENTRY_MAX 4 - /* Compressed/uncompressed size are stored biased by 1: */ struct bch_extent_crc32 { #if defined(__LITTLE_ENDIAN_BITFIELD) @@ -589,10 +593,10 @@ union bch_extent_entry { #else #error edit for your odd byteorder. #endif - struct bch_extent_crc32 crc32; - struct bch_extent_crc64 crc64; - struct bch_extent_crc128 crc128; - struct bch_extent_ptr ptr; + +#define x(f, n) struct bch_extent_##f f; + BCH_EXTENT_ENTRY_TYPES() +#undef x }; enum { diff --git a/fs/bcachefs/extents.h b/fs/bcachefs/extents.h index 2c7045f3f538..9a967a8ccb86 100644 --- a/fs/bcachefs/extents.h +++ b/fs/bcachefs/extents.h @@ -161,14 +161,11 @@ extent_entry_type(const union bch_extent_entry *e) static inline size_t extent_entry_bytes(const union bch_extent_entry *entry) { switch (extent_entry_type(entry)) { - case BCH_EXTENT_ENTRY_crc32: - return sizeof(struct bch_extent_crc32); - case BCH_EXTENT_ENTRY_crc64: - return sizeof(struct bch_extent_crc64); - case BCH_EXTENT_ENTRY_crc128: - return sizeof(struct bch_extent_crc128); - case BCH_EXTENT_ENTRY_ptr: - return sizeof(struct bch_extent_ptr); +#define x(f, n) \ + case BCH_EXTENT_ENTRY_##f: \ + return sizeof(struct bch_extent_##f); + BCH_EXTENT_ENTRY_TYPES() +#undef x default: BUG(); } |