h->user = pointer_to_uword (mh);
}
-void
+__clib_export void
mhash_init (mhash_t * h, uword n_value_bytes, uword n_key_bytes)
{
static struct
clib_memset (h, 0, sizeof (h[0]));
h->n_key_bytes = n_key_bytes;
-#if 0
- if (h->n_key_bytes > 0)
- {
- vec_validate (h->key_tmp, h->n_key_bytes - 1);
- _vec_len (h->key_tmp) = 0;
- }
-#endif
+ vec_validate (h->key_tmps, os_get_nthreads () - 1);
ASSERT (n_key_bytes < ARRAY_LEN (t));
h->hash = hash_create2 ( /* elts */ 0,
u8 *key_tmp;
int my_cpu = os_get_thread_index ();
- vec_validate (h->key_tmps, my_cpu);
key_tmp = h->key_tmps[my_cpu];
vec_reset_length (key_tmp);
return ~0;
}
-hash_pair_t *
+__clib_export hash_pair_t *
mhash_get_pair (mhash_t * h, const void *key)
{
uword ikey;
vec_header_t vec;
} mhash_string_key_t;
-uword
+__clib_export uword
mhash_set_mem (mhash_t * h, void *key, uword * new_value, uword * old_value)
{
u8 *k;
return ikey;
}
-uword
+__clib_export uword
mhash_unset (mhash_t * h, void *key, uword * old_value)
{
hash_pair_t *p;