summaryrefslogtreecommitdiffstats
path: root/vppinfra/vppinfra/bihash_8_8.h
diff options
context:
space:
mode:
Diffstat (limited to 'vppinfra/vppinfra/bihash_8_8.h')
-rw-r--r--vppinfra/vppinfra/bihash_8_8.h20
1 files changed, 18 insertions, 2 deletions
diff --git a/vppinfra/vppinfra/bihash_8_8.h b/vppinfra/vppinfra/bihash_8_8.h
index 21cb59ad67c..221e1f25534 100644
--- a/vppinfra/vppinfra/bihash_8_8.h
+++ b/vppinfra/vppinfra/bihash_8_8.h
@@ -25,11 +25,15 @@
#include <vppinfra/pool.h>
#include <vppinfra/xxhash.h>
+/** 8 octet key, 8 octet key value pair */
typedef struct {
- u64 key;
- u64 value;
+ u64 key; /**< the key */
+ u64 value; /**< the value */
} clib_bihash_kv_8_8_t;
+/** Decide if a clib_bihash_kv_8_8_t instance is free
+ @param v- pointer to the (key,value) pair
+*/
static inline int clib_bihash_is_free_8_8 (clib_bihash_kv_8_8_t *v)
{
if (v->key == ~0ULL && v->value == ~0ULL)
@@ -37,11 +41,19 @@ static inline int clib_bihash_is_free_8_8 (clib_bihash_kv_8_8_t *v)
return 0;
}
+/** Hash a clib_bihash_kv_8_8_t instance
+ @param v - pointer to the (key,value) pair, hash the key (only)
+*/
static inline u64 clib_bihash_hash_8_8 (clib_bihash_kv_8_8_t *v)
{
return clib_xxhash (v->key);
}
+/** Format a clib_bihash_kv_8_8_t instance
+ @param s - u8 * vector under construction
+ @param v (vararg) - the (key,value) pair to format
+ @return s - the u8 * vector under construction
+*/
static inline u8 * format_bihash_kvp_8_8 (u8 * s, va_list * args)
{
clib_bihash_kv_8_8_t * v = va_arg (*args, clib_bihash_kv_8_8_t *);
@@ -50,6 +62,10 @@ static inline u8 * format_bihash_kvp_8_8 (u8 * s, va_list * args)
return s;
}
+/** Compare two clib_bihash_kv_8_8_t instances
+ @param a - first key
+ @param b - second key
+*/
static inline int clib_bihash_key_compare_8_8 (u64 a, u64 b)
{
return a == b;