diff options
-rw-r--r-- | example/ndpiReader.c | 16 | ||||
-rw-r--r-- | src/include/ndpi_define.h.in | 8 |
2 files changed, 20 insertions, 4 deletions
diff --git a/example/ndpiReader.c b/example/ndpiReader.c index ef74a5a99..99b24874b 100644 --- a/example/ndpiReader.c +++ b/example/ndpiReader.c @@ -3724,7 +3724,9 @@ static void hllUnitTest() { static void bitmapUnitTest() { u_int32_t val, i, j; + u_int64_t val64; + /* With a 32 bit integer */ for(i=0; i<32; i++) { NDPI_ZERO_BIT(val); NDPI_SET_BIT(val, i); @@ -3737,6 +3739,20 @@ static void bitmapUnitTest() { } } } + + /* With a 64 bit integer */ + for(i=0; i<64; i++) { + NDPI_ZERO_BIT(val64); + NDPI_SET_BIT(val64, i); + + assert(NDPI_ISSET_BIT(val64, i)); + + for(j=0; j<64; j++) { + if(j != i) { + assert(!NDPI_ISSET_BIT(val64, j)); + } + } + } } /* *********************************************** */ diff --git a/src/include/ndpi_define.h.in b/src/include/ndpi_define.h.in index 6f4a4ee38..dd4b6dea6 100644 --- a/src/include/ndpi_define.h.in +++ b/src/include/ndpi_define.h.in @@ -282,10 +282,10 @@ #define NDPI_BITMASK_SET_ALL(a) NDPI_ONE(&a) #define NDPI_BITMASK_SET(a, b) { memcpy(&a, &b, sizeof(NDPI_PROTOCOL_BITMASK)); } -#define NDPI_SET_BIT(num, n) num |= 1UL << ( n ) -#define NDPI_CLR_BIT(num, n) num &= ~(1UL << ( n )) -#define NDPI_CLR_BIT(num, n) num &= ~(1UL << ( n )) -#define NDPI_ISSET_BIT(num, n) (num & (1UL << ( n ))) +#define NDPI_SET_BIT(num, n) num |= 1ULL << ( n ) +#define NDPI_CLR_BIT(num, n) num &= ~(1ULL << ( n )) +#define NDPI_CLR_BIT(num, n) num &= ~(1ULL << ( n )) +#define NDPI_ISSET_BIT(num, n) (num & (1ULL << ( n ))) #define NDPI_ZERO_BIT(num) num = 0 /* this is a very very tricky macro *g*, |