Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1537610

Re: [PATCH v3] add equivalent of BIT(x) for bitfields

From Kalle Valo <kvalo@codeaurora.org>
Newsgroups linux.kernel
Subject Re: [PATCH v3] add equivalent of BIT(x) for bitfields
Date 2016-12-07 09:50 +0100
Message-ID <sLG5k-6bA-15@gated-at.bofh.it> (permalink)
References <sLlkd-Rj-7@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


Sebastian Frias <sf84@laposte.net> writes:

> Introduce GENVALUE(msb, lsb, value) macro to ease dealing with
> continuous bitfields, just as BIT(x) does for single bits.
>
> GENVALUE_ULL(msb, lsb, value) macro is also added.
>
> This is useful mostly for creating values to be packed together
> via OR operations, ex:
>
>    u32 val = 0x11110000;
>    val |= GENVALUE(19, 12, 0x5a);
>
> now 'val = 0x1115a000'
>
>
> Signed-off-by: Sebastian Frias <sf84@laposte.net>
> Link: https://marc.info/?l=linux-kernel&m=148094498711000&w=2
> ---
>
> Change in v2:
> - rename the macro to GENVALUE as proposed by Linus
> - longer comment attempts to show use case for the macro as
> proposed by Borislav
>
> Change in v3:
> - use BUILD_BUG_ON_ZERO() to break if some input parameters
> (essentially 'lsb' but also 'msb') are not constants as
> proposed by Linus.
> Indeed, 'lsb' is used twice so it cannot have side-effects;
> 'msb' is subjected to same constraints for consistency.

(I missed there was v3 already, but I'll repeat what I said in v1.)

Please check FIELD_PREP() from include/linux/bitfield.h, doesn't it
already do the same?

Adding Jakub to comment more.

-- 
Kalle Valo

Back to linux.kernel | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

[PATCH v3] add equivalent of BIT(x) for bitfields Sebastian Frias <sf84@laposte.net> - 2016-12-06 11:40 +0100
  Re: [PATCH v3] add equivalent of BIT(x) for bitfields Kalle Valo <kvalo@codeaurora.org> - 2016-12-07 09:50 +0100
    Re: [PATCH v3] add equivalent of BIT(x) for bitfields Sebastian Frias <sf84@laposte.net> - 2016-12-07 11:10 +0100
      Re: [PATCH v3] add equivalent of BIT(x) for bitfields Jakub Kicinski <jakub.kicinski@netronome.com> - 2016-12-07 12:10 +0100
        Re: [PATCH v3] add equivalent of BIT(x) for bitfields Sebastian Frias <sf84@laposte.net> - 2016-12-07 12:30 +0100
          Re: [PATCH v3] add equivalent of BIT(x) for bitfields Jakub Kicinski <jakub.kicinski@netronome.com> - 2016-12-07 13:40 +0100
            Re: [PATCH v3] add equivalent of BIT(x) for bitfields Sebastian Frias <sf84@laposte.net> - 2016-12-07 15:00 +0100
              Re: [PATCH v3] add equivalent of BIT(x) for bitfields Jakub Kicinski <jakub.kicinski@netronome.com> - 2016-12-07 15:10 +0100
                Re: [PATCH v3] add equivalent of BIT(x) for bitfields Sebastian Frias <sf84@laposte.net> - 2016-12-07 15:40 +0100

csiph-web