suricata
|
#include "suricata-common.h"
#include "conf.h"
#include "util-debug.h"
#include "util-thash.h"
#include "util-random.h"
#include "util-misc.h"
#include "util-byte.h"
#include "util-hash-lookup3.h"
#include "util-validate.h"
Go to the source code of this file.
Macros | |
#define | THASH_DEFAULT_HASHSIZE 4096 |
#define | THASH_DEFAULT_MEMCAP 16777216 |
#define | THASH_DEFAULT_PREALLOC 1000 |
#define | GET_VAR(prefix, name) snprintf(varname, sizeof(varname), "%s.%s", (prefix), (name)) |
Functions | |
void | THashDataMoveToSpare (THashTableContext *ctx, THashData *h) |
THashDataQueue * | THashDataQueueNew (void) |
THashTableContext * | THashInit (const char *cnf_prefix, size_t data_size, int(*DataSet)(void *, void *), void(*DataFree)(void *), uint32_t(*DataHash)(uint32_t, void *), bool(*DataCompare)(void *, void *), bool(*DataExpired)(void *, SCTime_t), uint32_t(*DataSize)(void *), bool reset_memcap, uint64_t memcap, uint32_t hashsize) |
void | THashConsolidateMemcap (THashTableContext *ctx) |
void | THashShutdown (THashTableContext *ctx) |
shutdown the flow engine More... | |
int | THashWalk (THashTableContext *ctx, THashFormatFunc FormatterFunc, THashOutputFunc OutputterFunc, void *output_ctx) |
Walk the hash. More... | |
uint32_t | THashExpire (THashTableContext *ctx, const SCTime_t ts) |
expire data from the hash Walk the hash table and remove data that is exprired according to the DataExpired callback. More... | |
void | THashCleanup (THashTableContext *ctx) |
Cleanup the thash engine. More... | |
struct THashDataGetResult | THashGetFromHash (THashTableContext *ctx, void *data) |
THashData * | THashLookupFromHash (THashTableContext *ctx, void *data) |
look up data in the hash More... | |
int | THashRemoveFromHash (THashTableContext *ctx, void *data) |
Definition in file util-thash.c.
#define GET_VAR | ( | prefix, | |
name | |||
) | snprintf(varname, sizeof(varname), "%s.%s", (prefix), (name)) |
Definition at line 213 of file util-thash.c.
#define THASH_DEFAULT_HASHSIZE 4096 |
Definition at line 209 of file util-thash.c.
#define THASH_DEFAULT_MEMCAP 16777216 |
Definition at line 210 of file util-thash.c.
#define THASH_DEFAULT_PREALLOC 1000 |
Definition at line 211 of file util-thash.c.
void THashCleanup | ( | THashTableContext * | ctx | ) |
Cleanup the thash engine.
Cleanup the thash engine from tag and threshold.
Definition at line 489 of file util-thash.c.
References ctx, THashData_::data, HRLOCK_LOCK, HRLOCK_UNLOCK, THashData_::next, THashData_::prev, SC_ATOMIC_GET, SC_ATOMIC_SUB, and THashDataMoveToSpare().
void THashConsolidateMemcap | ( | THashTableContext * | ctx | ) |
Definition at line 353 of file util-thash.c.
References ctx, MAX, SC_ATOMIC_GET, SC_ATOMIC_SET, and SCLogDebug.
void THashDataMoveToSpare | ( | THashTableContext * | ctx, |
THashData * | h | ||
) |
Definition at line 41 of file util-thash.c.
Referenced by THashCleanup().
THashDataQueue* THashDataQueueNew | ( | void | ) |
Definition at line 56 of file util-thash.c.
References SCLogError, and SCMalloc.
uint32_t THashExpire | ( | THashTableContext * | ctx, |
const SCTime_t | ts | ||
) |
expire data from the hash Walk the hash table and remove data that is exprired according to the DataExpired callback.
cnt | number of items successfully expired/removed |
Definition at line 431 of file util-thash.c.
References cnt, ctx, HRLOCK_TRYLOCK, next, THashData_::next, and SCLogDebug.
Referenced by HttpRangeContainersTimeoutHash(), and ThresholdsExpire().
struct THashDataGetResult THashGetFromHash | ( | THashTableContext * | ctx, |
void * | data | ||
) |
Definition at line 560 of file util-thash.c.
THashTableContext* THashInit | ( | const char * | cnf_prefix, |
size_t | data_size, | ||
int(*)(void *, void *) | DataSet, | ||
void(*)(void *) | DataFree, | ||
uint32_t(*)(uint32_t, void *) | DataHash, | ||
bool(*)(void *, void *) | DataCompare, | ||
bool(*)(void *, SCTime_t) | DataExpired, | ||
uint32_t(*)(void *) | DataSize, | ||
bool | reset_memcap, | ||
uint64_t | memcap, | ||
uint32_t | hashsize | ||
) |
Definition at line 305 of file util-thash.c.
References BUG_ON, ctx, hashsize, RandomGet(), SC_ATOMIC_INIT, SC_ATOMIC_SET, SCCalloc, THASH_DEFAULT_HASHSIZE, THASH_DEFAULT_MEMCAP, and THASH_DEFAULT_PREALLOC.
Referenced by HttpRangeContainersInit().
THashData* THashLookupFromHash | ( | THashTableContext * | ctx, |
void * | data | ||
) |
look up data in the hash
data | data to look up |
h | LOCKED data or NULL |
Definition at line 732 of file util-thash.c.
int THashRemoveFromHash | ( | THashTableContext * | ctx, |
void * | data | ||
) |
int | -1 not found |
int | 0 found, but it was busy (ref cnt) |
int | 1 found and removed |
Definition at line 875 of file util-thash.c.
void THashShutdown | ( | THashTableContext * | ctx | ) |
shutdown the flow engine
Definition at line 362 of file util-thash.c.
Referenced by HttpRangeContainersDestroy().
int THashWalk | ( | THashTableContext * | ctx, |
THashFormatFunc | FormatterFunc, | ||
THashOutputFunc | OutputterFunc, | ||
void * | output_ctx | ||
) |
Walk the hash.
Definition at line 396 of file util-thash.c.
References ctx, THashData_::data, HRLOCK_LOCK, HRLOCK_UNLOCK, and THashData_::next.