FD.io VPP  v20.01-48-g3e0dafb74
Vector Packet Processing
qhash.c File Reference
+ Include dependency graph for qhash.c:

Go to the source code of this file.

Macros

#define QHASH_ALL_VALID   ((1 << QHASH_KEYS_PER_BUCKET) - 1)
 

Functions

static uword qhash_min_log2 (uword x)
 
static void qhash_min_log2_init ()
 
static uword qhash_get_valid_elt_mask (qhash_t *h, uword i)
 
static void qhash_set_valid_elt_mask (qhash_t *h, uword i, uword mask)
 
static uword qhash_search_bucket (uword *hash_keys, uword search_key, uword m)
 
void qhash_get_multiple (void *v, uword *search_keys, uword n_search_keys, u32 *result_indices)
 
u32 qhash_get_first_match (void *v, uword *search_keys, uword n_search_keys, uword *matching_key)
 
static void * qhash_set_overflow (void *v, uword elt_bytes, uword key, uword bi, uword *n_elts, u32 *result)
 
static uword qhash_unset_overflow (void *v, uword key, uword bi, uword *n_elts)
 
static uword qhash_find_free (uword i, uword valid_mask)
 
static uword unset_slow_path (void *v, uword elt_bytes, uword k0, uword bi0, uword valid0, uword match0, uword *n_elts)
 

Variables

static u8 min_log2_table [256]
 

Macro Definition Documentation

◆ QHASH_ALL_VALID

#define QHASH_ALL_VALID   ((1 << QHASH_KEYS_PER_BUCKET) - 1)

Definition at line 40 of file qhash.c.

Function Documentation

◆ qhash_find_free()

static uword qhash_find_free ( uword  i,
uword  valid_mask 
)
inlinestatic

Definition at line 457 of file qhash.c.

+ Here is the call graph for this function:

◆ qhash_get_first_match()

u32 qhash_get_first_match ( void *  v,
uword search_keys,
uword  n_search_keys,
uword matching_key 
)

Definition at line 245 of file qhash.c.

+ Here is the call graph for this function:

◆ qhash_get_multiple()

void qhash_get_multiple ( void *  v,
uword search_keys,
uword  n_search_keys,
u32 result_indices 
)

Definition at line 115 of file qhash.c.

+ Here is the call graph for this function:

◆ qhash_get_valid_elt_mask()

static uword qhash_get_valid_elt_mask ( qhash_t h,
uword  i 
)
inlinestatic

Definition at line 88 of file qhash.c.

+ Here is the caller graph for this function:

◆ qhash_min_log2()

static uword qhash_min_log2 ( uword  x)
inlinestatic

Definition at line 72 of file qhash.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ qhash_min_log2_init()

static void qhash_min_log2_init ( )
static

Definition at line 80 of file qhash.c.

+ Here is the call graph for this function:

◆ qhash_search_bucket()

static uword qhash_search_bucket ( uword hash_keys,
uword  search_key,
uword  m 
)
inlinestatic

Definition at line 100 of file qhash.c.

+ Here is the caller graph for this function:

◆ qhash_set_overflow()

static void* qhash_set_overflow ( void *  v,
uword  elt_bytes,
uword  key,
uword  bi,
uword n_elts,
u32 result 
)
static

Definition at line 389 of file qhash.c.

+ Here is the call graph for this function:

◆ qhash_set_valid_elt_mask()

static void qhash_set_valid_elt_mask ( qhash_t h,
uword  i,
uword  mask 
)
inlinestatic

Definition at line 94 of file qhash.c.

+ Here is the caller graph for this function:

◆ qhash_unset_overflow()

static uword qhash_unset_overflow ( void *  v,
uword  key,
uword  bi,
uword n_elts 
)
static

Definition at line 431 of file qhash.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ unset_slow_path()

static uword unset_slow_path ( void *  v,
uword  elt_bytes,
uword  k0,
uword  bi0,
uword  valid0,
uword  match0,
uword n_elts 
)
static

Definition at line 653 of file qhash.c.

+ Here is the call graph for this function:

Variable Documentation

◆ min_log2_table

u8 min_log2_table[256]
static

Definition at line 69 of file qhash.c.