summaryrefslogtreecommitdiff
path: root/lookup-incoming.c
diff options
context:
space:
mode:
authornorly <ny-git@enpas.org>2019-07-14 14:46:57 +0200
committernorly <ny-git@enpas.org>2019-07-14 14:57:19 +0200
commite3b2d7177c25319e62674efe20ae3be2f9794b37 (patch)
tree9bd5e13dd1b93594a83162d21a8adedafcbe74ea /lookup-incoming.c
parent89888270cfd98da4a3dff5fb3ec349adc705f175 (diff)
Generalise bitfield fully
Diffstat (limited to 'lookup-incoming.c')
-rw-r--r--lookup-incoming.c8
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);