aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuca <deri@ntop.org>2023-08-21 13:26:28 +0200
committerLuca <deri@ntop.org>2023-08-21 13:26:38 +0200
commit6e5466f9e5c8a03ce13f83e3fe8fb6d576a95f41 (patch)
tree1669e56427bb866c0a57d84386d96ccdba838db7
parentcc4461f4246f9e8eca9be5796aa53ec785d1a4f0 (diff)
Added ndpi_bitmap_andnot API call
-rw-r--r--src/include/ndpi_api.h1
-rw-r--r--src/lib/ndpi_bitmap.c7
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);