Commit abce30b7 authored by Kent Overstreet's avatar Kent Overstreet Committed by Kent Overstreet
Browse files

bcachefs: BCH_EXTENT_ENTRY_TYPES()

parent 71c9e0ba
Loading
Loading
Loading
Loading
+14 −10
Original line number Diff line number Diff line
@@ -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 {
+5 −8
Original line number Diff line number Diff line
@@ -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();
	}