aboutsummaryrefslogtreecommitdiff
path: root/src/bitfield.h
diff options
context:
space:
mode:
authorDavid Timber <mieabby@gmail.com>2021-08-09 17:30:18 +1000
committerDavid Timber <mieabby@gmail.com>2021-08-09 19:20:40 +1000
commiteea0a9fbbf1aff1eac1f17914d5c116de98e1d93 (patch)
tree776e61c070d7afa0df683093b82f327631534341 /src/bitfield.h
parentf6e94a01fd84b693c5a74b8f40edb4dc89836bdf (diff)
Protocol and build system change ...
* Use autoheader * Add --enable-minmem * Add OS code. Bin archive and protocol changed accordingly * Add instance flags in hostinfo frame. Bitfield util added for this * Add org_id in hostinfo for lineage record * SQL schema change: store integer value of hostinfo arch and os * Remove config.c * prne_index_nybin() now sets errno * Instance ids are now preserved for lineage record * Proone: remove arguments after init * Fix bug in prne_htbt_ser_bin_meta(): alloc_len is not checked
Diffstat (limited to 'src/bitfield.h')
-rw-r--r--src/bitfield.h24
1 files changed, 24 insertions, 0 deletions
diff --git a/src/bitfield.h b/src/bitfield.h
new file mode 100644
index 0000000..034e439
--- /dev/null
+++ b/src/bitfield.h
@@ -0,0 +1,24 @@
+#pragma once
+#include <stddef.h>
+#include <stdbool.h>
+#include <stdint.h>
+
+#include "util_ct.h"
+
+// This macro accepts zero
+#define prne_bf_get_size(nb_bits)\
+ ((nb_bits) % 8 == 0 ? (nb_bits) / 8 : (nb_bits) / 8 + 1)
+
+typedef void(*prne_bf_foreach_ft)(
+ void *ctx,
+ const unsigned int bit,
+ const bool v);
+
+
+void prne_bf_set (uint8_t *bf, const unsigned int bit, const bool v);
+bool prne_bf_test (const uint8_t *bf, const unsigned int bit);
+void prne_bf_foreach (
+ void *ctx,
+ const uint8_t *bf,
+ const size_t size,
+ prne_bf_foreach_ft f);