16 #undef BIHASH_KVP_PER_PAGE 17 #undef BIHASH_32_64_SVM 18 #undef BIHASH_ENABLE_STATS 20 #define BIHASH_TYPE _vec8_8 21 #define BIHASH_KVP_PER_PAGE 4 23 #ifndef __included_bihash_vec8_8_h__ 24 #define __included_bihash_vec8_8_h__ 45 if (v->
key == ~0ULL && v->
value == ~0ULL)
58 #ifdef clib_crc32c_uses_intrinsics 59 return clib_crc32c (keyp,
vec_len (keyp));
65 for (i = 0, j = 0; i <
vec_len (keyp); i++)
67 sum ^= keyp[
i] << (j * 8);
88 s =
format (s,
"key %U value %llu",
100 u8 *
a = (
u8 *) a_arg;
101 u8 *b = (
u8 *) b_arg;
103 if (a_arg == ~0ULL || b_arg == ~0ULL)
109 return memcmp (a, b,
vec_len (a)) == 0;
112 #undef __included_bihash_template_h__
Fixed length block allocator.
static u64 clib_xxhash(u64 key)
static u8 * format_bihash_kvp_vec8_8(u8 *s, va_list *args)
Format a clib_bihash_kv_vec8_8_t instance.
static int clib_bihash_is_free_vec8_8(clib_bihash_kv_vec8_8_t *v)
Decide if a clib_bihash_kv_vec8_8_t instance is free.
8 octet key, 8 octet key value pair
static int clib_bihash_key_compare_vec8_8(u64 a_arg, u64 b_arg)
Compare two clib_bihash_kv_vec8_8_t instances.
#define vec_len(v)
Number of elements in vector (rvalue-only, NULL tolerant)
static u64 clib_bihash_hash_vec8_8(clib_bihash_kv_vec8_8_t *v)
Hash a clib_bihash_kv_vec8_8_t instance.