diff options
author | norly <ny-git@enpas.org> | 2019-07-14 14:46:57 +0200 |
---|---|---|
committer | norly <ny-git@enpas.org> | 2019-07-14 14:57:19 +0200 |
commit | e3b2d7177c25319e62674efe20ae3be2f9794b37 (patch) | |
tree | 9bd5e13dd1b93594a83162d21a8adedafcbe74ea /lookup-incoming.c | |
parent | 89888270cfd98da4a3dff5fb3ec349adc705f175 (diff) |
Generalise bitfield fully
Diffstat (limited to 'lookup-incoming.c')
-rw-r--r-- | lookup-incoming.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/lookup-incoming.c b/lookup-incoming.c index 8223feb..da21f44 100644 --- a/lookup-incoming.c +++ b/lookup-incoming.c @@ -10,11 +10,13 @@ typedef __uint32_t bitfield_type; +#define BITS_PER_BITFIELD 32 +#define BITS_PER_BITFIELD_LOG 5 #define BIT_SET(set, d) \ - ( (void) ( set[d >> 5] |= (1 << (d & 31)) ) ) + ( (void) ( set[d >> BITS_PER_BITFIELD_LOG] |= (1 << (d & (BITS_PER_BITFIELD-1))) ) ) #define BIT_ISSET(set, d) \ - (!(! ( set[d >> 5] & (1 << (d & 31)) ) )) + (!(! ( set[d >> BITS_PER_BITFIELD_LOG] & (1 << (d & (BITS_PER_BITFIELD-1))) ) )) int ANY_BITS_SET(bitfield_type *set, size_t elems) { @@ -191,7 +193,7 @@ int main(int argc, char **argv) printf("\n\n\n\nBuilding table of distances...\n\n"); - titles_bitfield_elems = ROUNDUP(titles / 8 / sizeof(bitfield_type), sizeof(bitfield_type)); + titles_bitfield_elems = ROUNDUP(titles / BITS_PER_BITFIELD, BITS_PER_BITFIELD); titles_bitfield_bytes = titles_bitfield_elems * sizeof(bitfield_type); titles_seen = calloc(titles_bitfield_bytes, 1); |