MFC after: 1 week
Sponsored by: Ampere Computing, Inc.
Details
- Reviewers
kib rlibby - Group Reviewers
manpages - Commits
- rS364796: bitset: add BIT_FFS_AT() for finding the first bit set greater than a start bit
Diff Detail
- Repository
- rS FreeBSD src repository - subversion
- Lint
Lint Skipped - Unit
Tests Skipped
Event Timeline
share/man/man9/bitset.9 | ||
---|---|---|
27 | Typo |
share/man/man9/bitset.9 | ||
---|---|---|
294 | For me it looks like 'greater or equal'. | |
sys/sys/bitset.h | ||
241 | Why not implement this same as BIT_FFS, but start the loop not from __i = 0, but from __i = __bitset_word(s, start) ? Then BIT_FFS() can be redefined as BIT_FFS_AT(s, p, 0). Of course, all this assuming my note about 'greater or equal' being true. |
share/man/man9/bitset.9 | ||
---|---|---|
294 | It would be greater-or-equal if you consider start as a 1-based index, or greater if you consider it 1-based. I tried to document everything as 1-based as that's also the return value of BIT_FFS, but I can change it around however. | |
sys/sys/bitset.h | ||
241 | The old version was a sort-of transliteration of bitstring's bit_ffs_at, and then I had not redefined BIT_FFS() in terms of BIT_FFS_AT() because it seemed to be generating assembly for the mask even in the 0 start case. This version doesn't seem to have that problem so I've redefined BIT_FFS here. |
Other than the small note, looks good.
sys/sys/bitset.h | ||
---|---|---|
225 | Don' you need to write this as BIT_FFS_AT((_s), (p), 0) ? |
sys/sys/bitset.h | ||
---|---|---|
225 | I don't believe anything could go wrong without it, but I've added it for consistency with the surrounding code. |