Re: [RFC PATCH 1/2] bits: introduce ffs_val()
From: Yury Norov
Date: Fri Jan 09 2026 - 14:44:14 EST
On Fri, Jan 09, 2026 at 08:27:11PM +0100, Petr Tesarik wrote:
> On Fri, 9 Jan 2026 13:26:30 -0500
> Yury Norov <ynorov@xxxxxxxxxx> wrote:
...
> > In bitops world, something_mask() has a very clear meaning. Consider
> > GENMASK(), BITMAP_FIRST_BYTE_MASK(), __BF_FIELD_CHECK_MASK(), and so
> > on.
> >
> > lsb_mask(), or LSB_MASK() if you prefer, is just right.
>
> I assume you mean BITMAP_FIRST_WORD_MASK(), not btrfs-specific
> BITMAP_FIRST_BYTE_MASK(), defined in fs/btrfs/extent_io.h.
>
> But then it nicely illustrate exactly what I mean:
They all have a consistent meaning:
> BIT_MASK(4) = 0x0000000000000010
A mask constructed from bit #4.
> GENMASK(4, 0) = 0x000000000000001f
A mask constructed from bits #0..4.
> BITMAP_FIRST_WORD_MASK(4) == 0xfffffffffffffff0
A mask constructed from all bits starting #4.
Don't see any misalignment here.
> > > The only issue is that LSB may also refer to least-significant BYTE. :-(
> >
> > It will never mean byte because it hosts in bitops.h, not byteops.h
>
> I'm afraid that identifiers from various sources end up next to each
> other and they do not carry tags where each of them came from...
You can name it lsb_bitmask() if you want, either way works. But to me
shorter is better.