16 #undef BIHASH_KVP_PER_PAGE 17 #undef BIHASH_32_64_SVM 18 #undef BIHASH_ENABLE_STATS 19 #undef BIHASH_KVP_AT_BUCKET_LEVEL 20 #undef BIHASH_LAZY_INSTANTIATE 21 #undef BIHASH_BUCKET_PREFETCH_CACHE_LINES 23 #define BIHASH_TYPE _vec8_8 24 #define BIHASH_KVP_PER_PAGE 4 25 #define BIHASH_KVP_AT_BUCKET_LEVEL 0 26 #define BIHASH_LAZY_INSTANTIATE 1 27 #define BIHASH_BUCKET_PREFETCH_CACHE_LINES 1 29 #ifndef __included_bihash_vec8_8_h__ 30 #define __included_bihash_vec8_8_h__ 51 if (v->
key == ~0ULL && v->
value == ~0ULL)
64 #ifdef clib_crc32c_uses_intrinsics 65 return clib_crc32c (keyp,
vec_len (keyp));
71 for (i = 0, j = 0; i <
vec_len (keyp); i++)
73 sum ^= keyp[
i] << (j * 8);
94 s =
format (s,
"key %U value %llu",
106 u8 *
a = (
u8 *) a_arg;
107 u8 *b = (
u8 *) b_arg;
109 if (a_arg == ~0ULL || b_arg == ~0ULL)
115 return memcmp (a, b,
vec_len (a)) == 0;
118 #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.
sll srl srl sll sra u16x4 i
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.