Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1537610
| 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 |
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 | Next — Previous in thread | Next in thread | Find similar | Unroll 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