CNDP  22.08.0
cne_hash Struct Reference

#include <cne_cuckoo_hash.h>

Data Fields

char name [CNE_HASH_NAMESIZE]
 
uint32_t entries
 
uint32_t num_buckets
 
cne_ring_t * free_slots
 
uint32_t key_len __cne_cache_aligned
 
uint8_t hw_trans_mem_support
 
uint8_t readwrite_concur_support
 
uint8_t ext_table_support
 
uint8_t no_free_on_del
 
uint8_t readwrite_concur_lf_support
 
uint8_t writer_takes_lock
 
cne_hash_function hash_func
 
uint32_t hash_func_init_val
 
cne_hash_cmp_eq_t cne_hash_custom_cmp_eq
 
enum cmp_jump_table_case cmp_jump_table_idx
 
enum cne_hash_sig_compare_function sig_cmp_fn
 
uint32_t bucket_bitmask
 
uint32_t key_entry_size
 
void * key_store
 
struct cne_hash_bucketbuckets
 
cne_rwlock_treadwrite_lock
 
struct cne_hash_bucketbuckets_ext
 
cne_ring_t * free_ext_bkts
 
uint32_t * tbl_chng_cnt
 

Detailed Description

A hash table structure.

Definition at line 141 of file cne_cuckoo_hash.h.

Field Documentation

◆ name

char name[CNE_HASH_NAMESIZE]

Name of the hash.

Definition at line 142 of file cne_cuckoo_hash.h.

◆ entries

uint32_t entries

Total table entries.

Definition at line 143 of file cne_cuckoo_hash.h.

◆ num_buckets

uint32_t num_buckets

Number of buckets in table.

Definition at line 144 of file cne_cuckoo_hash.h.

◆ free_slots

cne_ring_t* free_slots

Ring that stores all indexes of the free slots in the key table

Definition at line 146 of file cne_cuckoo_hash.h.

◆ __cne_cache_aligned

uint32_t key_len __cne_cache_aligned

Length of hash key.

Definition at line 150 of file cne_cuckoo_hash.h.

◆ hw_trans_mem_support

uint8_t hw_trans_mem_support

If hardware transactional memory is used.

Definition at line 152 of file cne_cuckoo_hash.h.

◆ readwrite_concur_support

uint8_t readwrite_concur_support

If read-write concurrency support is enabled

Definition at line 154 of file cne_cuckoo_hash.h.

◆ ext_table_support

uint8_t ext_table_support

Enable extendable bucket table

Definition at line 156 of file cne_cuckoo_hash.h.

◆ no_free_on_del

uint8_t no_free_on_del

If key index should be freed on calling cne_hash_del_xxx APIs. If this is set, cne_hash_free_key_with_position must be called to free the key index associated with the deleted entry. This flag is enabled by default.

Definition at line 157 of file cne_cuckoo_hash.h.

◆ readwrite_concur_lf_support

uint8_t readwrite_concur_lf_support

If read-write concurrency lock free support is enabled

Definition at line 163 of file cne_cuckoo_hash.h.

◆ writer_takes_lock

uint8_t writer_takes_lock

Indicates if the writer threads need to take lock

Definition at line 165 of file cne_cuckoo_hash.h.

◆ hash_func

cne_hash_function hash_func

Function used to calculate hash.

Definition at line 167 of file cne_cuckoo_hash.h.

◆ hash_func_init_val

uint32_t hash_func_init_val

Init value used by hash_func.

Definition at line 168 of file cne_cuckoo_hash.h.

◆ cne_hash_custom_cmp_eq

cne_hash_cmp_eq_t cne_hash_custom_cmp_eq

Custom function used to compare keys.

Definition at line 169 of file cne_cuckoo_hash.h.

◆ cmp_jump_table_idx

enum cmp_jump_table_case cmp_jump_table_idx

Indicates which compare function to use.

Definition at line 169 of file cne_cuckoo_hash.h.

◆ sig_cmp_fn

enum cne_hash_sig_compare_function sig_cmp_fn

Indicates which signature compare function to use.

Definition at line 169 of file cne_cuckoo_hash.h.

◆ bucket_bitmask

uint32_t bucket_bitmask

Bitmask for getting bucket index from hash signature.

Definition at line 175 of file cne_cuckoo_hash.h.

◆ key_entry_size

uint32_t key_entry_size

Size of each key entry.

Definition at line 177 of file cne_cuckoo_hash.h.

◆ key_store

void* key_store

Table storing all keys and data

Definition at line 179 of file cne_cuckoo_hash.h.

◆ buckets

struct cne_hash_bucket* buckets

Table with buckets storing all the hash values and key indexes to the key table.

Definition at line 180 of file cne_cuckoo_hash.h.

◆ readwrite_lock

cne_rwlock_t* readwrite_lock

Read-write lock thread-safety.

Definition at line 184 of file cne_cuckoo_hash.h.

◆ buckets_ext

struct cne_hash_bucket* buckets_ext

Extra buckets array

Definition at line 185 of file cne_cuckoo_hash.h.

◆ free_ext_bkts

cne_ring_t* free_ext_bkts

Ring of indexes of free buckets

Definition at line 186 of file cne_cuckoo_hash.h.

◆ tbl_chng_cnt

uint32_t* tbl_chng_cnt

Indicates if the hash table changed from last read.

Definition at line 194 of file cne_cuckoo_hash.h.


The documentation for this struct was generated from the following file: