util/bitset: add BITSET_SIZE()

To get the size (in bits) of a bitset.
And minor clean-up in __bitset_ffs().

Signed-off-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
cc: mesa-stable

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17062>
(cherry picked from commit 8bd6feaca5)
This commit is contained in:
Brian Paul 2022-05-25 10:21:21 -06:00 committed by Dylan Baker
parent 9f601b6a54
commit 3d7fe94c6a
2 changed files with 4 additions and 5 deletions

View file

@ -5296,7 +5296,7 @@
"description": "util/bitset: add BITSET_SIZE()",
"nominated": true,
"nomination_type": 0,
"resolution": 0,
"resolution": 1,
"main_sha": null,
"because_sha": null
},

View file

@ -52,6 +52,7 @@
#define BITSET_EQUAL(x, y) (memcmp( (x), (y), sizeof (x) ) == 0)
#define BITSET_ZERO(x) memset( (x), 0, sizeof (x) )
#define BITSET_ONES(x) memset( (x), 0xff, sizeof (x) )
#define BITSET_SIZE(x) (8 * sizeof(x)) // bitset size in bits
#define BITSET_BITWORD(b) ((b) / BITSET_WORDBITS)
#define BITSET_BIT(b) (1u << ((b) % BITSET_WORDBITS))
@ -262,11 +263,9 @@ __bitset_count(const BITSET_WORD *x, unsigned n)
static inline int
__bitset_ffs(const BITSET_WORD *x, int n)
{
int i;
for (i = 0; i < n; i++) {
for (int i = 0; i < n; i++) {
if (x[i])
return ffs(x[i]) + BITSET_WORDBITS * i;
return ffs(x[i]) + BITSET_WORDBITS * i;
}
return 0;