btrfs: add helper for bit enumeration
authorDavid Sterba <dsterba@suse.com>
Fri, 9 Sep 2022 15:20:25 +0000 (17:20 +0200)
committerDavid Sterba <dsterba@suse.com>
Mon, 5 Dec 2022 17:00:40 +0000 (18:00 +0100)
commitd549ff7bdbe72f5e0e934895090fed2647e9813b
tree7f70c03d6a6731e292a3bff07eaaa329886fed7b
parent5565b8e0adcdd8ee32d02d82d98cdf6d966793c7
btrfs: add helper for bit enumeration

Define helper macro that can be used in enum {} to utilize the automatic
increment to define all bits without directly defining the values or
using additional linear bits.

1. capture the sequence value, N
2. use the value to define the given enum with N-th bit set
3. reset the sequence back to N

Use for enums that do not require fixed values for symbolic names (like
for on-disk structures):

enum {
ENUM_BIT(FIRST),
ENUM_BIT(SECOND),
ENUM_BIT(THIRD)
};

Where the values would be 0x1, 0x2 and 0x4.

Reviewed-by: Josef Bacik <josef@toxicpanda.com>
Signed-off-by: David Sterba <dsterba@suse.com>
fs/btrfs/misc.h