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 majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to