Re: [PATCH v2 3/9] bitops: Introduce a more generic BITMASK macro

From: Joe Perches
Date: Thu Oct 17 2013 - 04:32:43 EST


On Thu, 2013-10-17 at 03:38 -0400, Chen Gong wrote:
> the point is we can use GENMASK like GENMASK(end_bit, start_bit) but
> we don't know the value of end_bit/start_bit at compile-time.

True.

The BUILD_BUG_ON idea is just to avoid people using
GENMASK(1, 2)
instead of
GENMASK(2, 1)

#define GENMASK(h, l) \
({ \
BUILD_BUG_ON(__builtin_constant_p(l) && \
__builtin_constant_p(h) && \
(l) > (h)); \
(((U32_C(1) << ((h) - (l) + 1)) - 1) << (l)); \
})


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/