The hash API is a collection of simple hash table functions. Users are expected to implement their own hashing.
Data Structures
-
struct hash_table
-
The hash table structure. The
array
member points to the hash table entries. Thesize
member counts the total number of valid and invalid entries in the table. Thenr
member keeps track of the number of valid entries. -
struct hash_table_entry
-
An opaque structure representing an entry in the hash table. The
hash
member is the entry’s hash key and theptr
member is the entry’s value.
Functions
-
init_hash
-
Initialize the hash table.
-
free_hash
-
Release memory associated with the hash table.
-
insert_hash
-
Insert a pointer into the hash table. If an entry with that hash already exists, a pointer to the existing entry’s value is returned. Otherwise NULL is returned. This allows callers to implement chaining, etc.
-
lookup_hash
-
Lookup an entry in the hash table. If an entry with that hash exists the entry’s value is returned. Otherwise NULL is returned.
-
for_each_hash
-
Call a function for each entry in the hash table. The function is expected to take the entry’s value as its only argument and return an int. If the function returns a negative int the loop is aborted immediately. Otherwise, the return value is accumulated and the sum returned upon completion of the loop.