Code Review
/
vpp.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
review
|
tree
raw
|
inline
| side by side
vppinfra: add const to char* params of several funcs
[vpp.git]
/
src
/
vppinfra
/
mhash.c
diff --git
a/src/vppinfra/mhash.c
b/src/vppinfra/mhash.c
index
c917e16
..
f0f1aa4
100644
(file)
--- a/
src/vppinfra/mhash.c
+++ b/
src/vppinfra/mhash.c
@@
-164,7
+164,7
@@
mhash_sanitize_hash_user (mhash_t * mh)
h->user = pointer_to_uword (mh);
}
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
mhash_init (mhash_t * h, uword n_value_bytes, uword n_key_bytes)
{
static struct
@@
-202,16
+202,10
@@
mhash_init (mhash_t * h, uword n_value_bytes, uword n_key_bytes)
vec_free (h->key_tmps);
hash_free (h->hash);
vec_free (h->key_tmps);
hash_free (h->hash);
- memset (h, 0, sizeof (h[0]));
+
clib_
memset (h, 0, sizeof (h[0]));
h->n_key_bytes = n_key_bytes;
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,
ASSERT (n_key_bytes < ARRAY_LEN (t));
h->hash = hash_create2 ( /* elts */ 0,
@@
-226,9
+220,8
@@
static uword
mhash_set_tmp_key (mhash_t * h, const void *key)
{
u8 *key_tmp;
mhash_set_tmp_key (mhash_t * h, const void *key)
{
u8 *key_tmp;
- int my_cpu = os_get_
cpu_number
();
+ 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);
key_tmp = h->key_tmps[my_cpu];
vec_reset_length (key_tmp);
@@
-250,7
+243,7
@@
mhash_set_tmp_key (mhash_t * h, const void *key)
return ~0;
}
return ~0;
}
-hash_pair_t *
+
__clib_export
hash_pair_t *
mhash_get_pair (mhash_t * h, const void *key)
{
uword ikey;
mhash_get_pair (mhash_t * h, const void *key)
{
uword ikey;
@@
-263,11
+256,11
@@
typedef struct
{
u32 heap_handle;
{
u32 heap_handle;
- /* Must co
n
incide with vec_header. */
+ /* Must coincide with vec_header. */
vec_header_t vec;
} mhash_string_key_t;
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;
mhash_set_mem (mhash_t * h, void *key, uword * new_value, uword * old_value)
{
u8 *k;
@@
-289,7
+282,7
@@
mhash_set_mem (mhash_t * h, void *key, uword * new_value, uword * old_value)
sk = (void *) (h->key_vector_or_heap + i);
sk->heap_handle = handle;
sk->vec.len = n_key_bytes;
sk = (void *) (h->key_vector_or_heap + i);
sk->heap_handle = handle;
sk->vec.len = n_key_bytes;
- clib_memcpy (sk->vec.vector_data, key, n_key_bytes);
+ clib_memcpy
_fast
(sk->vec.vector_data, key, n_key_bytes);
/* Advance key past vector header. */
i += sizeof (sk[0]);
/* Advance key past vector header. */
i += sizeof (sk[0]);
@@
-302,7
+295,7
@@
mhash_set_mem (mhash_t * h, void *key, uword * new_value, uword * old_value)
{
i = h->key_vector_free_indices[l - 1];
k = vec_elt_at_index (h->key_vector_or_heap, i);
{
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
{
}
else
{
@@
-311,7
+304,7
@@
mhash_set_mem (mhash_t * h, void *key, uword * new_value, uword * old_value)
}
n_key_bytes = h->n_key_bytes;
}
n_key_bytes = h->n_key_bytes;
- clib_memcpy (k, key, n_key_bytes);
+ clib_memcpy
_fast
(k, key, n_key_bytes);
}
ikey = i;
}
ikey = i;
@@
-339,17
+332,17
@@
mhash_set_mem (mhash_t * h, void *key, uword * new_value, uword * old_value)
if (key_alloc_from_free_list)
{
h->key_vector_free_indices[l] = i;
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
}
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;
}
}
}
return ikey;
}
-uword
+
__clib_export
uword
mhash_unset (mhash_t * h, void *key, uword * old_value)
{
hash_pair_t *p;
mhash_unset (mhash_t * h, void *key, uword * old_value)
{
hash_pair_t *p;