BITMASK
BITMASK(GC_MARK, struct bucket, gc_mark, 0, 2);
BITMASK(GC_SECTORS_USED, struct bucket, gc_mark, 2, GC_SECTORS_USED_SIZE);
BITMASK(GC_MOVE, struct bucket, gc_mark, 15, 1);
BITMASK(CACHE_SYNC, struct cache_sb, flags, 0, 1);
BITMASK(CACHE_DISCARD, struct cache_sb, flags, 1, 1);
BITMASK(CACHE_REPLACEMENT, struct cache_sb, flags, 2, 3);
BITMASK(BDEV_CACHE_MODE, struct cache_sb, flags, 0, 4);
BITMASK(BDEV_STATE, struct cache_sb, flags, 61, 2);
BITMASK(name, struct bkey, field, offset, size)
BITMASK(UUID_FLASH_ONLY, struct uuid_entry, flags, 0, 1);
mask = BITMASK(info->bits);
return tmp & BITMASK(info->bits);
return (hi_val + (ale_entry[idx] >> start)) & BITMASK(bits);
value &= BITMASK(bits);
ale_entry[index] &= ~(BITMASK(bits + start - (idx2 * 32)));
ale_entry[idx] &= ~(BITMASK(bits) << start);
#define RTL_REV_CAP_RX_BUFF_CMD_SIZE BITMASK(31, 24)
#define RTL_REV_CAP_RX_BUFF_SIZE BITMASK(15, 0)
#define RTL_REV_CAP_TX_BUFF_CMD_SIZE BITMASK(31, 24)
#define RTL_REV_CAP_TX_BUFF_SIZE BITMASK(15, 0)
#define MASKEXPAND(mask) BITMASK(1?mask,0?mask)
#define MASKEXPAND(mask) BITMASK(1?mask,0?mask)