diff options
-rw-r--r-- | src/include/ndpi_api.h | 1 | ||||
-rw-r--r-- | src/lib/ndpi_bitmap.c | 7 |
2 files changed, 8 insertions, 0 deletions
diff --git a/src/include/ndpi_api.h b/src/include/ndpi_api.h index 3d99a6c03..4454b6ad0 100644 --- a/src/include/ndpi_api.h +++ b/src/include/ndpi_api.h @@ -1983,6 +1983,7 @@ extern "C" { ndpi_bitmap* ndpi_bitmap_deserialize(char *buf); void ndpi_bitmap_and(ndpi_bitmap* a, ndpi_bitmap* b_and); + void ndpi_bitmap_andnot(ndpi_bitmap* a, ndpi_bitmap* b_and); void ndpi_bitmap_or(ndpi_bitmap* a, ndpi_bitmap* b_or); void ndpi_bitmap_xor(ndpi_bitmap* a, ndpi_bitmap* b_xor); diff --git a/src/lib/ndpi_bitmap.c b/src/lib/ndpi_bitmap.c index 245b9cb8e..6a96fcfc2 100644 --- a/src/lib/ndpi_bitmap.c +++ b/src/lib/ndpi_bitmap.c @@ -114,6 +114,13 @@ void ndpi_bitmap_and(ndpi_bitmap* a, ndpi_bitmap* b_and) { /* ******************************************* */ +/* b = b & !b_and */ +void ndpi_bitmap_andnot(ndpi_bitmap* a, ndpi_bitmap* b_and) { + roaring_bitmap_andnot_inplace((ndpi_bitmap*)a, (ndpi_bitmap*)b_and); +} + +/* ******************************************* */ + /* b = b | b_or */ void ndpi_bitmap_or(ndpi_bitmap* a, ndpi_bitmap* b_or) { roaring_bitmap_or_inplace((ndpi_bitmap*)a, (ndpi_bitmap*)b_or); |