Lines Matching refs:_mask
63 #define __BF_FIELD_CHECK(_mask, _reg, _val, _pfx) \ argument
65 BUILD_BUG_ON_MSG(!__builtin_constant_p(_mask), \
67 BUILD_BUG_ON_MSG((_mask) == 0, _pfx "mask is zero"); \
69 ~((_mask) >> __bf_shf(_mask)) & \
72 BUILD_BUG_ON_MSG(__bf_cast_unsigned(_mask, _mask) > \
75 __BUILD_BUG_ON_NOT_POWER_OF_2((_mask) + \
76 (1ULL << __bf_shf(_mask))); \
86 #define FIELD_MAX(_mask) \ argument
88 __BF_FIELD_CHECK(_mask, 0ULL, 0ULL, "FIELD_MAX: "); \
89 (typeof(_mask))((_mask) >> __bf_shf(_mask)); \
99 #define FIELD_FIT(_mask, _val) \ argument
101 __BF_FIELD_CHECK(_mask, 0ULL, 0ULL, "FIELD_FIT: "); \
102 !((((typeof(_mask))_val) << __bf_shf(_mask)) & ~(_mask)); \
113 #define FIELD_PREP(_mask, _val) \ argument
115 __BF_FIELD_CHECK(_mask, 0ULL, _val, "FIELD_PREP: "); \
116 ((typeof(_mask))(_val) << __bf_shf(_mask)) & (_mask); \
133 #define FIELD_PREP_CONST(_mask, _val) \ argument
136 BUILD_BUG_ON_ZERO((_mask) == 0) + \
138 BUILD_BUG_ON_ZERO(~((_mask) >> __bf_shf(_mask)) & (_val)) + \
140 __BF_CHECK_POW2((_mask) + (1ULL << __bf_shf(_mask))) + \
142 (((typeof(_mask))(_val) << __bf_shf(_mask)) & (_mask)) \
153 #define FIELD_GET(_mask, _reg) \ argument
155 __BF_FIELD_CHECK(_mask, _reg, 0U, "FIELD_GET: "); \
156 (typeof(_mask))(((_reg) & (_mask)) >> __bf_shf(_mask)); \