On Sat, 21 Dec 2019 16:07:23 +0000 Honnappa Nagarahalli <honnappa.nagaraha...@arm.com> wrote:
> Converting these into macros will help remove the size based duplication of > APIs. I came up with the following macro: > > #define RTE_GET_BIT(nr, var, ret, memorder) \ > ({ \ > if (sizeof(var) == sizeof(uint32_t)) { \ > uint32_t mask1 = 1U << (nr)%32; \ > ret = __atomic_load_n(&var, (memorder)) & mask1;\ > } \ > else {\ > uint64_t mask2 = 1UL << (nr)%64;\ > ret = __atomic_load_n(&var, (memorder)) & mask2;\ > } \ > }) Macros are more error prone. Especially because this is in exposed header file