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
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;
{
i = h->key_vector_free_indices[l - 1];
k = vec_elt_at_index (h->key_vector_or_heap, i);
- _vec_len (h->key_vector_free_indices) = l - 1;
+ vec_set_len (h->key_vector_free_indices, l - 1);
}
else
{
if (key_alloc_from_free_list)
{
h->key_vector_free_indices[l] = i;
- _vec_len (h->key_vector_free_indices) = l + 1;
+ vec_set_len (h->key_vector_free_indices, l + 1);
}
else
- _vec_len (h->key_vector_or_heap) -= h->n_key_bytes;
+ vec_dec_len (h->key_vector_or_heap, h->n_key_bytes);
}
}
return ikey;
}
-uword
+__clib_export uword
mhash_unset (mhash_t * h, void *key, uword * old_value)
{
hash_pair_t *p;