38 #ifndef included_phash_h 39 #define included_phash_h 98 #define PHASH_FLAG_MIX64 (1 << 0) 99 #define PHASH_FLAG_MIX32 (0 << 0) 102 #define PHASH_FLAG_USE_SCRAMBLE (1 << 1) 105 #define PHASH_FLAG_SLOW_MODE (0 << 2) 106 #define PHASH_FLAG_FAST_MODE (1 << 2) 109 #define PHASH_FLAG_NON_MINIMAL (0 << 3) 110 #define PHASH_FLAG_MINIMAL (1 << 3) 123 int (* key_is_equal) (
void *
private,
uword key1,
uword key2);
126 void (* key_seed1) (
void *
private,
uword key,
void * seed);
168 memset (pm, 0,
sizeof (pm[0]));
static void(BVT(clib_bihash)*h, BVT(clib_bihash_value)*v)
clib_error_t * phash_find_perfect_hash(phash_main_t *pm)
always_inline void phash_main_free_working_memory(phash_main_t *pm)
#define vec_free(V)
Free vector's memory (no header).
uword phash_hash_slow(phash_main_t *pm, uword key)
int phash_test_main(unformat_input_t *input)
clib_error_t * phash_validate(phash_main_t *pm)
always_inline void phash_main_free(phash_main_t *pm)
always_inline void phash_tabb_free(phash_tabb_t *b)
#define PHASH_FLAG_USE_SCRAMBLE