suricata
|
#include "suricata-common.h"
#include "util-hash.h"
#include "util-unittest.h"
#include "util-memcmp.h"
Go to the source code of this file.
Functions | |
HashTable * | HashTableInit (uint32_t size, uint32_t(*Hash)(struct HashTable_ *, void *, uint16_t), char(*Compare)(void *, uint16_t, void *, uint16_t), void(*Free)(void *)) |
void | HashTableFree (HashTable *ht) |
void | HashTablePrint (HashTable *ht) |
int | HashTableAdd (HashTable *ht, void *data, uint16_t datalen) |
int | HashTableRemove (HashTable *ht, void *data, uint16_t datalen) |
void * | HashTableLookup (HashTable *ht, void *data, uint16_t datalen) |
uint32_t | HashTableGenericHash (HashTable *ht, void *data, uint16_t datalen) |
char | HashTableDefaultCompare (void *data1, uint16_t len1, void *data2, uint16_t len2) |
void | HashTableRegisterTests (void) |
Chained hash table implementation
The 'Free' pointer can be used to have the API free your hashed data. If it's NULL it's the callers responsebility
Definition in file util-hash.c.
int HashTableAdd | ( | HashTable * | ht, |
void * | data, | ||
uint16_t | datalen | ||
) |
Definition at line 113 of file util-hash.c.
References HashTable_::array, HashTable_::array_size, HashTable_::count, HashTableBucket_::data, HashTable_::Hash, HashTableBucket_::next, SC_ERR_INVALID_VALUE, SCFree, SCLogWarning, SCMalloc, HashTableBucket_::size, and unlikely.
Referenced by DecodeRegisterPerfCounters(), DetectEngineResetMaxSigId(), DetectMetadataHashFree(), HashTableDefaultCompare(), SCClassConfAddClasstype(), and SCRConfAddReference().
char HashTableDefaultCompare | ( | void * | data1, |
uint16_t | len1, | ||
void * | data2, | ||
uint16_t | len2 | ||
) |
Definition at line 238 of file util-hash.c.
References HashTable_::Compare, HashTable_::Hash, HashTableAdd(), HashTableDefaultCompare(), HashTableFree(), HashTableGenericHash(), HashTableInit(), HashTableLookup(), HashTableRemove(), and SCMemcmp.
Referenced by HashTableDefaultCompare(), and HashTableInit().
void HashTableFree | ( | HashTable * | ht | ) |
Definition at line 79 of file util-hash.c.
References HashTable_::array, HashTable_::array_size, HashTableBucket_::data, HashTable_::Free, HashTableBucket_::next, and SCFree.
Referenced by DecodeUnregisterCounters(), DetectEngineResetMaxSigId(), DetectEngineThreadCtxDeinit(), DetectMetadataHashFree(), HashTableDefaultCompare(), SCClassConfDeInitContext(), SCRConfDeInitContext(), and StatsSetUI64().
uint32_t HashTableGenericHash | ( | HashTable * | ht, |
void * | data, | ||
uint16_t | datalen | ||
) |
Definition at line 221 of file util-hash.c.
References HashTable_::array_size.
Referenced by HashTableDefaultCompare().
HashTable* HashTableInit | ( | uint32_t | size, |
uint32_t(*)(struct HashTable_ *, void *, uint16_t) | Hash, | ||
char(*)(void *, uint16_t, void *, uint16_t) | Compare, | ||
void(*)(void *) | Free | ||
) |
Definition at line 34 of file util-hash.c.
References HashTable_::array, HashTable_::array_size, HashTable_::Compare, HashTable_::Free, HashTable_::Hash, HashTableDefaultCompare(), SCFree, SCMalloc, and unlikely.
Referenced by DecodeRegisterPerfCounters(), DetectEngineResetMaxSigId(), DetectMetadataHashInit(), HashTableDefaultCompare(), SCClassConfDeinit(), and SCReferenceConfDeinit().
void* HashTableLookup | ( | HashTable * | ht, |
void * | data, | ||
uint16_t | datalen | ||
) |
Definition at line 193 of file util-hash.c.
References HashTable_::array, HashTable_::array_size, HashTable_::Compare, HashTableBucket_::data, HashTable_::Hash, HashTableBucket_::next, SC_ERR_INVALID_VALUE, SCLogWarning, and HashTableBucket_::size.
Referenced by DecodeRegisterPerfCounters(), DetectMetadataHashFree(), DetectSignatureApplyActions(), HashTableDefaultCompare(), SCClassConfAddClasstype(), SCClassConfGetClasstype(), SCRConfAddReference(), and SCRConfGetReference().
void HashTablePrint | ( | HashTable * | ht | ) |
Definition at line 105 of file util-hash.c.
References HashTable_::array_size, and HashTable_::Hash.
void HashTableRegisterTests | ( | void | ) |
Definition at line 427 of file util-hash.c.
References UtRegisterTest().
int HashTableRemove | ( | HashTable * | ht, |
void * | data, | ||
uint16_t | datalen | ||
) |
Definition at line 152 of file util-hash.c.
References HashTable_::array, HashTable_::Compare, HashTableBucket_::data, HashTable_::Free, HashTable_::Hash, HashTableBucket_::next, SCFree, and HashTableBucket_::size.
Referenced by HashTableDefaultCompare().