bcachefs: BCH_EXTENT_ENTRY_TYPES()
authorKent Overstreet <kent.overstreet@gmail.com>
Sun, 30 Sep 2018 22:39:20 +0000 (18:39 -0400)
committerKent Overstreet <kent.overstreet@linux.dev>
Sun, 22 Oct 2023 21:08:10 +0000 (17:08 -0400)
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
fs/bcachefs/bcachefs_format.h
fs/bcachefs/extents.h

index ac0c7d6a07fbfa09ba273e5b4178449bc01bace5..72df3fe1572b23346f63d5d32cfe68f2db56a466 100644 (file)
@@ -461,15 +461,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)
@@ -594,10 +598,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 {
index fe5eb32b6ed9473636de13ce2939f487e3e35be5..e2f6caefcb31de62063b58846da879b94dd65a32 100644 (file)
@@ -162,14 +162,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();
        }