libnl 3.12.0

Data Structures

struct  nl_rhash_table

Macros

#define NL_HT_LOAD_NUM   3
#define NL_HT_LOAD_DEN   4
#define NL_INIT_RHASH_ENTRIES   8

Typedefs

typedef struct nl_rhash_table nl_rhash_table_t

Functions

nl_hash_table_tnl_hash_table_alloc (int size)
 Allocate hashtable.
void nl_hash_table_free (nl_hash_table_t *ht)
 Free hashtable including all nodes.
struct nl_object * nl_hash_table_lookup (nl_hash_table_t *ht, struct nl_object *obj)
 Lookup identical object in hashtable.
int nl_hash_table_add (nl_hash_table_t *ht, struct nl_object *obj)
 Add object to hashtable.
int nl_hash_table_del (nl_hash_table_t *ht, struct nl_object *obj)
 Remove object from hashtable.
uint32_t nl_hash (void *k, size_t length, uint32_t initval)
nl_rhash_table_tnl_rhash_table_alloc ()
 Allocate resizeable hashtable.
void nl_rhash_table_free (nl_rhash_table_t *ht)
 Free resizeable hashtable including all nodes.
struct nl_object * nl_rhash_table_lookup (nl_rhash_table_t *ht, struct nl_object *obj)
 Lookup identical object in resizeable hashtable.
int nl_rhash_table_add (nl_rhash_table_t *ht, struct nl_object *obj)
 Add object to resizeable hashtable.
int nl_rhash_table_del (nl_rhash_table_t *ht, struct nl_object *obj)
 Remove object from resizeable hashtable.

Detailed Description

Macro Definition Documentation

◆ NL_HT_LOAD_NUM

#define NL_HT_LOAD_NUM   3

Definition at line 225 of file hashtable.c.

◆ NL_HT_LOAD_DEN

#define NL_HT_LOAD_DEN   4

Definition at line 226 of file hashtable.c.

◆ NL_INIT_RHASH_ENTRIES

#define NL_INIT_RHASH_ENTRIES   8

Definition at line 272 of file hashtable.c.

Function Documentation

◆ nl_hash_table_alloc()

nl_hash_table_t * nl_hash_table_alloc ( int size)

Allocate hashtable.

Parameters
sizeSize of hashtable in number of elements
Returns
Allocated hashtable or NULL.

Definition at line 41 of file hashtable.c.

◆ nl_hash_table_free()

void nl_hash_table_free ( nl_hash_table_t * ht)

Free hashtable including all nodes.

Parameters
htHashtable
Note
Reference counter of all objects in the hashtable will be decremented.

Definition at line 78 of file hashtable.c.

◆ nl_hash_table_lookup()

struct nl_object * nl_hash_table_lookup ( nl_hash_table_t * ht,
struct nl_object * obj )

Lookup identical object in hashtable.

Parameters
htHashtable
objObject to lookup

Generates hashkey for obj and traverses the corresponding chain calling nl_object_identical() on each trying to find a match.

Returns
Pointer to object if match was found or NULL.

Definition at line 94 of file hashtable.c.

References nl_object_identical(), and nl_object_keygen().

Referenced by nl_rhash_table_lookup().

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

◆ nl_hash_table_add()

int nl_hash_table_add ( nl_hash_table_t * ht,
struct nl_object * obj )

Add object to hashtable.

Parameters
htHashtable
objObject to add

Adds obj to the hashtable. Object type must support hashing, otherwise all objects will be added to the chain 0.

Note
The reference counter of the object is incremented.
Returns
0 on success or a negative error code
Return values
-NLE_EXISTIdentical object already present in hashtable

Definition at line 125 of file hashtable.c.

References nl_object_get(), nl_object_identical(), and nl_object_keygen().

Referenced by nl_rhash_table_add().

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

◆ nl_hash_table_del()

int nl_hash_table_del ( nl_hash_table_t * ht,
struct nl_object * obj )

Remove object from hashtable.

Parameters
htHashtable
objObject to remove

Remove obj from hashtable if it exists.

Note
Reference counter of object will be decremented.
Returns
0 on success or a negative error code.
Return values
-NLE_OBJ_NOTFOUNDObject not present in hashtable.

Definition at line 170 of file hashtable.c.

References nl_object_identical(), nl_object_keygen(), and nl_object_put().

Referenced by nl_rhash_table_del().

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

◆ nl_hash()

uint32_t nl_hash ( void * k,
size_t length,
uint32_t initval )

Definition at line 203 of file hashtable.c.

◆ nl_rhash_table_alloc()

nl_rhash_table_t * nl_rhash_table_alloc ( void )

Allocate resizeable hashtable.

Returns
Allocated hashtable or NULL.

Definition at line 279 of file hashtable.c.

Referenced by nl_cache_alloc().

Here is the caller graph for this function:

◆ nl_rhash_table_free()

void nl_rhash_table_free ( nl_rhash_table_t * ht)

Free resizeable hashtable including all nodes.

Parameters
htResizeable Hashtable
Note
Reference counter of all objects in the hashtable will be decremented.

Definition at line 306 of file hashtable.c.

◆ nl_rhash_table_lookup()

struct nl_object * nl_rhash_table_lookup ( nl_rhash_table_t * ht,
struct nl_object * obj )

Lookup identical object in resizeable hashtable.

Parameters
htResizeable Hashtable
objObject to lookup

Generates hashkey for obj and traverses the corresponding chain calling nl_object_identical() on each trying to find a match.

Returns
Pointer to object if match was found or NULL.

Definition at line 322 of file hashtable.c.

References nl_hash_table_lookup().

Here is the call graph for this function:

◆ nl_rhash_table_add()

int nl_rhash_table_add ( nl_rhash_table_t * ht,
struct nl_object * obj )

Add object to resizeable hashtable.

Parameters
htResizeable Hashtable
objObject to add

Adds obj to the resizeable hashtable. Object type must support hashing, otherwise all objects will be added to the chain 0.

Note
The reference counter of the object is incremented.
Returns
0 on success or a negative error code
Return values
-NLE_EXISTIdentical object already present in hashtable

Definition at line 341 of file hashtable.c.

References nl_hash_table_add().

Here is the call graph for this function:

◆ nl_rhash_table_del()

int nl_rhash_table_del ( nl_rhash_table_t * ht,
struct nl_object * obj )

Remove object from resizeable hashtable.

Parameters
htResizeable Hashtable
objObject to remove

Remove obj from resizeable hashtable if it exists.

Note
Reference counter of object will be decremented.
Returns
0 on success or a negative error code.
Return values
-NLE_OBJ_NOTFOUNDObject not present in hashtable.

Definition at line 379 of file hashtable.c.

References nl_hash_table_del().

Referenced by nl_cache_remove().

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