libnl 3.7.0
|
Functions | |
nl_hash_table_t * | nl_hash_table_alloc (int size) |
Allocate hashtable. More... | |
void | nl_hash_table_free (nl_hash_table_t *ht) |
Free hashtable including all nodes. More... | |
struct nl_object * | nl_hash_table_lookup (nl_hash_table_t *ht, struct nl_object *obj) |
Lookup identical object in hashtable. More... | |
int | nl_hash_table_add (nl_hash_table_t *ht, struct nl_object *obj) |
Add object to hashtable. More... | |
int | nl_hash_table_del (nl_hash_table_t *ht, struct nl_object *obj) |
Remove object from hashtable. More... | |
uint32_t | nl_hash (void *k, size_t length, uint32_t initval) |
nl_hash_table_t * nl_hash_table_alloc | ( | int | size | ) |
Allocate hashtable.
size | Size of hashtable in number of elements |
Definition at line 24 of file hashtable.c.
Referenced by nl_cache_alloc().
void nl_hash_table_free | ( | nl_hash_table_t * | ht | ) |
Free hashtable including all nodes.
ht | Hashtable |
Definition at line 51 of file hashtable.c.
References nl_object_put().
struct nl_object * nl_hash_table_lookup | ( | nl_hash_table_t * | ht, |
struct nl_object * | obj | ||
) |
Lookup identical object in hashtable.
ht | Hashtable |
obj | Object to lookup |
Generates hashkey for obj
and traverses the corresponding chain calling nl_object_identical()
on each trying to find a match.
Definition at line 81 of file hashtable.c.
References nl_object_identical(), and nl_object_keygen().
int nl_hash_table_add | ( | nl_hash_table_t * | ht, |
struct nl_object * | obj | ||
) |
Add object to hashtable.
ht | Hashtable |
obj | Object to add |
Adds obj
to the hashtable. Object type must support hashing, otherwise all objects will be added to the chain 0
.
-NLE_EXIST | Identical object already present in hashtable |
Definition at line 112 of file hashtable.c.
References nl_object_get(), nl_object_identical(), and nl_object_keygen().
int nl_hash_table_del | ( | nl_hash_table_t * | ht, |
struct nl_object * | obj | ||
) |
Remove object from hashtable.
ht | Hashtable |
obj | Object to remove |
Remove obj
from hashtable if it exists.
-NLE_OBJ_NOTFOUND | Object not present in hashtable. |
Definition at line 156 of file hashtable.c.
References nl_object_identical(), nl_object_keygen(), and nl_object_put().
Referenced by nl_cache_remove().
uint32_t nl_hash | ( | void * | k, |
size_t | length, | ||
uint32_t | initval | ||
) |
Definition at line 187 of file hashtable.c.