suricata
util-hash.h File Reference
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  HashTableBucket_
 
struct  HashTable_
 

Macros

#define HASH_NO_SIZE   0
 

Typedefs

typedef struct HashTableBucket_ HashTableBucket
 
typedef struct HashTable_ HashTable
 

Functions

HashTableHashTableInit (uint32_t, uint32_t(*Hash)(struct HashTable_ *, void *, uint16_t), char(*Compare)(void *, uint16_t, void *, uint16_t), void(*Free)(void *))
 
HashTableHashTableInitWithSeed (uint32_t, uint32_t(*Hash)(struct HashTable_ *, void *, uint16_t), char(*Compare)(void *, uint16_t, void *, uint16_t), void(*Free)(void *), const uint32_t seed)
 
void HashTableFree (HashTable *)
 Free a HashTable and all its contents. More...
 
int HashTableAdd (HashTable *, void *, uint16_t)
 
int HashTableRemove (HashTable *, void *, uint16_t)
 Remove an item from the hash table. More...
 
void * HashTableLookup (HashTable *, void *, uint16_t)
 
void HashTableIterate (HashTable *ht, void(*CallbackFn)(void *, void *), void *aux)
 
uint32_t HashTableGenericHash (HashTable *, void *, uint16_t)
 
char HashTableDefaultCompare (void *, uint16_t, void *, uint16_t)
 
void HashTableRegisterTests (void)
 

Detailed Description

Author
Victor Julien victo.nosp@m.r@in.nosp@m.linia.nosp@m.c.ne.nosp@m.t

Definition in file util-hash.h.

Macro Definition Documentation

◆ HASH_NO_SIZE

#define HASH_NO_SIZE   0

Definition at line 48 of file util-hash.h.

Typedef Documentation

◆ HashTable

typedef struct HashTable_ HashTable

◆ HashTableBucket

Function Documentation

◆ HashTableAdd()

int HashTableAdd ( HashTable ,
void *  ,
uint16_t   
)

◆ HashTableDefaultCompare()

char HashTableDefaultCompare ( void *  ,
uint16_t  ,
void *  ,
uint16_t   
)

Definition at line 254 of file util-hash.c.

References SCMemcmp.

Referenced by HashTableInit().

Here is the caller graph for this function:

◆ HashTableFree()

void HashTableFree ( HashTable ht)

Free a HashTable and all its contents.

This function will free all the buckets and the array of buckets.

Note
If the Free function is set, it will be called for each data item in the hash table.
Parameters
htPointer to the HashTable to free
Returns
void

Definition at line 112 of file util-hash.c.

References HashTable_::array, and HashTable_::array_size.

Referenced by DetectEngineThreadCtxDeinit(), DetectMetadataHashFree(), LogFileFreeCtx(), SCClassConfDeInitContext(), and SCRConfDeInitContext().

Here is the caller graph for this function:

◆ HashTableGenericHash()

uint32_t HashTableGenericHash ( HashTable ,
void *  ,
uint16_t   
)

Definition at line 237 of file util-hash.c.

References HashTable_::array_size.

◆ HashTableInit()

HashTable* HashTableInit ( uint32_t  ,
uint32_t(*)(struct HashTable_ *, void *, uint16_t)  Hash,
char(*)(void *, uint16_t, void *, uint16_t)  Compare,
void(*)(void *)  Free 
)

Definition at line 35 of file util-hash.c.

References HashTable_::array, HashTable_::array_size, HashTable_::Compare, HashTable_::Free, HashTable_::Hash, HashTableDefaultCompare(), SCCalloc, SCFree, and unlikely.

Referenced by DetectFirewallInitDefaultPolicies(), DetectMetadataHashInit(), HashTableInitWithSeed(), and SCLogOpenThreadedFile().

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

◆ HashTableInitWithSeed()

HashTable* HashTableInitWithSeed ( uint32_t  ,
uint32_t(*)(struct HashTable_ *, void *, uint16_t)  Hash,
char(*)(void *, uint16_t, void *, uint16_t)  Compare,
void(*)(void *)  Free,
const uint32_t  seed 
)

Definition at line 78 of file util-hash.c.

References HashTableInit(), and HashTable_::seed.

Here is the call graph for this function:

◆ HashTableIterate()

void HashTableIterate ( HashTable ht,
void(*)(void *, void *)  CallbackFn,
void *  aux 
)

◆ HashTableLookup()

◆ HashTableRegisterTests()

void HashTableRegisterTests ( void  )

Definition at line 476 of file util-hash.c.

References UtRegisterTest().

Here is the call graph for this function:

◆ HashTableRemove()

int HashTableRemove ( HashTable ht,
void *  data,
uint16_t  datalen 
)

Remove an item from the hash table.

This function will search for the item in the hash table and remove it if found

Note
If the Free function is set, it will be called for the data item being removed.
Parameters
htPointer to the HashTable
dataPointer to the data to remove
datalenLength of the data to remove
Returns
int 0 on success, -1 if the item was not found or an error occurred

Definition at line 178 of file util-hash.c.

References HashTable_::array, HashTable_::Compare, and HashTable_::Hash.