]> git.ozlabs.org Git - ccan/blobdiff - ccan/tdb2/tdb2.h
tdb2: tdb_deq: inline helper for comparing two struct tdb_data
[ccan] / ccan / tdb2 / tdb2.h
index 50903a7641bfcc409c2c26d7d74a0a1c40210d60..811d9120458d3b720c670be0179a48db437c5533 100644 (file)
@@ -40,6 +40,8 @@ extern "C" {
 #include <stdint.h>
 /* For bool */
 #include <stdbool.h>
+/* For memcmp */
+#include <string.h>
 #endif
 #include <ccan/compiler/compiler.h>
 #include <ccan/typesafe_cb/typesafe_cb.h>
@@ -208,6 +210,16 @@ enum TDB_ERROR tdb_delete(struct tdb_context *tdb, struct tdb_data key);
  */
 bool tdb_exists(struct tdb_context *tdb, TDB_DATA key);
 
+/**
+ * tdb_deq - are struct tdb_data equal?
+ * @a: one struct tdb_data
+ * @b: another struct tdb_data
+ */
+static inline bool tdb_deq(struct tdb_data a, struct tdb_data b)
+{
+       return a.dsize == b.dsize && memcmp(a.dptr, b.dptr, a.dsize) == 0;
+}
+
 /**
  * tdb_transaction_start - start a transaction
  * @tdb: the tdb context returned from tdb_open()