mpm: constify search func args

pull/1980/head
Victor Julien 10 years ago
parent 26517b8b61
commit e48d745ed7

@ -259,7 +259,7 @@ uint32_t PacketPatternSearchWithStreamCtx(DetectEngineThreadCtx *det_ctx,
SCEnter(); SCEnter();
uint32_t ret = 0; uint32_t ret = 0;
MpmCtx *mpm_ctx = NULL; const MpmCtx *mpm_ctx = NULL;
if (p->flowflags & FLOW_PKT_TOSERVER) { if (p->flowflags & FLOW_PKT_TOSERVER) {
DEBUG_VALIDATE_BUG_ON(det_ctx->sgh->mpm_stream_ctx_ts == NULL); DEBUG_VALIDATE_BUG_ON(det_ctx->sgh->mpm_stream_ctx_ts == NULL);
@ -294,7 +294,7 @@ uint32_t PacketPatternSearch(DetectEngineThreadCtx *det_ctx, Packet *p)
SCEnter(); SCEnter();
uint32_t ret; uint32_t ret;
MpmCtx *mpm_ctx = NULL; const MpmCtx *mpm_ctx = NULL;
if (p->proto == IPPROTO_TCP) { if (p->proto == IPPROTO_TCP) {
if (p->flowflags & FLOW_PKT_TOSERVER) { if (p->flowflags & FLOW_PKT_TOSERVER) {

@ -1007,33 +1007,33 @@ typedef struct SigGroupHead_ {
uint32_t non_mpm_store_cnt; uint32_t non_mpm_store_cnt;
/* pattern matcher instances */ /* pattern matcher instances */
MpmCtx *mpm_proto_other_ctx; const MpmCtx *mpm_proto_other_ctx;
MpmCtx *mpm_proto_tcp_ctx_ts; const MpmCtx *mpm_proto_tcp_ctx_ts;
MpmCtx *mpm_proto_udp_ctx_ts; const MpmCtx *mpm_proto_udp_ctx_ts;
MpmCtx *mpm_stream_ctx_ts; const MpmCtx *mpm_stream_ctx_ts;
MpmCtx *mpm_uri_ctx_ts; const MpmCtx *mpm_uri_ctx_ts;
MpmCtx *mpm_hcbd_ctx_ts; const MpmCtx *mpm_hcbd_ctx_ts;
MpmCtx *mpm_hhd_ctx_ts; const MpmCtx *mpm_hhd_ctx_ts;
MpmCtx *mpm_hrhd_ctx_ts; const MpmCtx *mpm_hrhd_ctx_ts;
MpmCtx *mpm_hmd_ctx_ts; const MpmCtx *mpm_hmd_ctx_ts;
MpmCtx *mpm_hcd_ctx_ts; const MpmCtx *mpm_hcd_ctx_ts;
MpmCtx *mpm_hrud_ctx_ts; const MpmCtx *mpm_hrud_ctx_ts;
MpmCtx *mpm_huad_ctx_ts; const MpmCtx *mpm_huad_ctx_ts;
MpmCtx *mpm_hhhd_ctx_ts; const MpmCtx *mpm_hhhd_ctx_ts;
MpmCtx *mpm_hrhhd_ctx_ts; const MpmCtx *mpm_hrhhd_ctx_ts;
MpmCtx *mpm_dnsquery_ctx_ts; const MpmCtx *mpm_dnsquery_ctx_ts;
MpmCtx *mpm_smtp_filedata_ctx_ts; const MpmCtx *mpm_smtp_filedata_ctx_ts;
MpmCtx *mpm_proto_tcp_ctx_tc; const MpmCtx *mpm_proto_tcp_ctx_tc;
MpmCtx *mpm_proto_udp_ctx_tc; const MpmCtx *mpm_proto_udp_ctx_tc;
MpmCtx *mpm_stream_ctx_tc; const MpmCtx *mpm_stream_ctx_tc;
MpmCtx *mpm_hsbd_ctx_tc; const MpmCtx *mpm_hsbd_ctx_tc;
MpmCtx *mpm_hhd_ctx_tc; const MpmCtx *mpm_hhd_ctx_tc;
MpmCtx *mpm_hrhd_ctx_tc; const MpmCtx *mpm_hrhd_ctx_tc;
MpmCtx *mpm_hcd_ctx_tc; const MpmCtx *mpm_hcd_ctx_tc;
MpmCtx *mpm_hsmd_ctx_tc; const MpmCtx *mpm_hsmd_ctx_tc;
MpmCtx *mpm_hscd_ctx_tc; const MpmCtx *mpm_hscd_ctx_tc;
uint16_t mpm_uricontent_minlen; /**< len of shortest mpm pattern in sgh */ uint16_t mpm_uricontent_minlen; /**< len of shortest mpm pattern in sgh */

@ -27,7 +27,8 @@
#include "util-bloomfilter.h" #include "util-bloomfilter.h"
#include "util-unittest.h" #include "util-unittest.h"
BloomFilter *BloomFilterInit(uint32_t size, uint8_t iter, uint32_t (*Hash)(void *, uint16_t, uint8_t, uint32_t)) { BloomFilter *BloomFilterInit(uint32_t size, uint8_t iter,
uint32_t (*Hash)(const void *, uint16_t, uint8_t, uint32_t)) {
BloomFilter *bf = NULL; BloomFilter *bf = NULL;
if (size == 0 || iter == 0) if (size == 0 || iter == 0)
@ -122,7 +123,7 @@ uint32_t BloomFilterMemorySize(BloomFilter *bf)
*/ */
#ifdef UNITTESTS #ifdef UNITTESTS
static uint32_t BloomFilterTestHash(void *data, uint16_t datalen, uint8_t iter, uint32_t hash_size) static uint32_t BloomFilterTestHash(const void *data, uint16_t datalen, uint8_t iter, uint32_t hash_size)
{ {
uint8_t *d = (uint8_t *)data; uint8_t *d = (uint8_t *)data;
uint32_t i; uint32_t i;

@ -27,13 +27,13 @@
/* Bloom Filter structure */ /* Bloom Filter structure */
typedef struct BloomFilter_ { typedef struct BloomFilter_ {
uint8_t hash_iterations; uint8_t hash_iterations;
uint32_t (*Hash)(void *, uint16_t, uint8_t, uint32_t); uint32_t (*Hash)(const void *, uint16_t, uint8_t, uint32_t);
uint32_t bitarray_size; uint32_t bitarray_size;
uint8_t *bitarray; uint8_t *bitarray;
} BloomFilter; } BloomFilter;
/* prototypes */ /* prototypes */
BloomFilter *BloomFilterInit(uint32_t, uint8_t, uint32_t (*Hash)(void *, uint16_t, uint8_t, uint32_t)); BloomFilter *BloomFilterInit(uint32_t, uint8_t, uint32_t (*Hash)(const void *, uint16_t, uint8_t, uint32_t));
void BloomFilterFree(BloomFilter *); void BloomFilterFree(BloomFilter *);
void BloomFilterPrint(BloomFilter *); void BloomFilterPrint(BloomFilter *);
int BloomFilterAdd(BloomFilter *, void *, uint16_t); int BloomFilterAdd(BloomFilter *, void *, uint16_t);
@ -44,9 +44,9 @@ void BloomFilterRegisterTests(void);
/** ----- Inline functions ---- */ /** ----- Inline functions ---- */
static inline int BloomFilterTest(BloomFilter *, void *, uint16_t); static inline int BloomFilterTest(const BloomFilter *, const void *, uint16_t);
static inline int BloomFilterTest(BloomFilter *bf, void *data, uint16_t datalen) static inline int BloomFilterTest(const BloomFilter *bf, const void *data, uint16_t datalen)
{ {
uint8_t iter = 0; uint8_t iter = 0;
uint32_t hash = 0; uint32_t hash = 0;

@ -69,8 +69,8 @@ int SCACBSAddPatternCI(MpmCtx *, uint8_t *, uint16_t, uint16_t, uint16_t,
int SCACBSAddPatternCS(MpmCtx *, uint8_t *, uint16_t, uint16_t, uint16_t, int SCACBSAddPatternCS(MpmCtx *, uint8_t *, uint16_t, uint16_t, uint16_t,
uint32_t, SigIntId, uint8_t); uint32_t, SigIntId, uint8_t);
int SCACBSPreparePatterns(MpmCtx *mpm_ctx); int SCACBSPreparePatterns(MpmCtx *mpm_ctx);
uint32_t SCACBSSearch(MpmCtx *mpm_ctx, MpmThreadCtx *mpm_thread_ctx, uint32_t SCACBSSearch(const MpmCtx *mpm_ctx, MpmThreadCtx *mpm_thread_ctx,
PatternMatcherQueue *pmq, uint8_t *buf, uint16_t buflen); PatternMatcherQueue *pmq, const uint8_t *buf, uint16_t buflen);
void SCACBSPrintInfo(MpmCtx *mpm_ctx); void SCACBSPrintInfo(MpmCtx *mpm_ctx);
void SCACBSPrintSearchStats(MpmThreadCtx *mpm_thread_ctx); void SCACBSPrintSearchStats(MpmThreadCtx *mpm_thread_ctx);
void SCACBSRegisterTests(void); void SCACBSRegisterTests(void);
@ -1421,10 +1421,10 @@ void SCACBSDestroyCtx(MpmCtx *mpm_ctx)
* *
* \retval matches Match count. * \retval matches Match count.
*/ */
uint32_t SCACBSSearch(MpmCtx *mpm_ctx, MpmThreadCtx *mpm_thread_ctx, uint32_t SCACBSSearch(const MpmCtx *mpm_ctx, MpmThreadCtx *mpm_thread_ctx,
PatternMatcherQueue *pmq, uint8_t *buf, uint16_t buflen) PatternMatcherQueue *pmq, const uint8_t *buf, uint16_t buflen)
{ {
SCACBSCtx *ctx = (SCACBSCtx *)mpm_ctx->ctx; const SCACBSCtx *ctx = (SCACBSCtx *)mpm_ctx->ctx;
int i = 0; int i = 0;
int matches = 0; int matches = 0;
uint8_t buf_local; uint8_t buf_local;

@ -31,8 +31,8 @@
#ifdef FUNC_NAME #ifdef FUNC_NAME
/* This function handles (ctx->state_count < 32767) */ /* This function handles (ctx->state_count < 32767) */
uint32_t FUNC_NAME(SCACTileSearchCtx *ctx, MpmThreadCtx *mpm_thread_ctx, uint32_t FUNC_NAME(const SCACTileSearchCtx *ctx, MpmThreadCtx *mpm_thread_ctx,
PatternMatcherQueue *pmq, uint8_t *buf, uint16_t buflen) PatternMatcherQueue *pmq, const uint8_t *buf, uint16_t buflen)
{ {
int i = 0; int i = 0;
int matches = 0; int matches = 0;
@ -40,7 +40,7 @@ uint32_t FUNC_NAME(SCACTileSearchCtx *ctx, MpmThreadCtx *mpm_thread_ctx,
uint8_t mpm_bitarray[ctx->mpm_bitarray_size]; uint8_t mpm_bitarray[ctx->mpm_bitarray_size];
memset(mpm_bitarray, 0, ctx->mpm_bitarray_size); memset(mpm_bitarray, 0, ctx->mpm_bitarray_size);
uint8_t* restrict xlate = ctx->translate_table; const uint8_t* restrict xlate = ctx->translate_table;
STYPE *state_table = (STYPE*)ctx->state_table; STYPE *state_table = (STYPE*)ctx->state_table;
STYPE state = 0; STYPE state = 0;
int c = xlate[buf[0]]; int c = xlate[buf[0]];

@ -89,53 +89,53 @@ int SCACTileAddPatternCI(MpmCtx *, uint8_t *, uint16_t, uint16_t, uint16_t,
int SCACTileAddPatternCS(MpmCtx *, uint8_t *, uint16_t, uint16_t, uint16_t, int SCACTileAddPatternCS(MpmCtx *, uint8_t *, uint16_t, uint16_t, uint16_t,
uint32_t, SigIntId, uint8_t); uint32_t, SigIntId, uint8_t);
int SCACTilePreparePatterns(MpmCtx *mpm_ctx); int SCACTilePreparePatterns(MpmCtx *mpm_ctx);
uint32_t SCACTileSearch(MpmCtx *mpm_ctx, MpmThreadCtx *mpm_thread_ctx, uint32_t SCACTileSearch(const MpmCtx *mpm_ctx, MpmThreadCtx *mpm_thread_ctx,
PatternMatcherQueue *pmq, uint8_t *buf, PatternMatcherQueue *pmq, const uint8_t *buf,
uint16_t buflen); uint16_t buflen);
void SCACTilePrintInfo(MpmCtx *mpm_ctx); void SCACTilePrintInfo(MpmCtx *mpm_ctx);
void SCACTilePrintSearchStats(MpmThreadCtx *mpm_thread_ctx); void SCACTilePrintSearchStats(MpmThreadCtx *mpm_thread_ctx);
void SCACTileRegisterTests(void); void SCACTileRegisterTests(void);
uint32_t SCACTileSearchLarge(SCACTileSearchCtx *ctx, MpmThreadCtx *mpm_thread_ctx, uint32_t SCACTileSearchLarge(const SCACTileSearchCtx *ctx, MpmThreadCtx *mpm_thread_ctx,
PatternMatcherQueue *pmq, PatternMatcherQueue *pmq,
uint8_t *buf, uint16_t buflen); const uint8_t *buf, uint16_t buflen);
uint32_t SCACTileSearchSmall256(SCACTileSearchCtx *ctx, MpmThreadCtx *mpm_thread_ctx, uint32_t SCACTileSearchSmall256(const SCACTileSearchCtx *ctx, MpmThreadCtx *mpm_thread_ctx,
PatternMatcherQueue *pmq, PatternMatcherQueue *pmq,
uint8_t *buf, uint16_t buflen); const uint8_t *buf, uint16_t buflen);
uint32_t SCACTileSearchSmall128(SCACTileSearchCtx *ctx, MpmThreadCtx *mpm_thread_ctx, uint32_t SCACTileSearchSmall128(const SCACTileSearchCtx *ctx, MpmThreadCtx *mpm_thread_ctx,
PatternMatcherQueue *pmq, PatternMatcherQueue *pmq,
uint8_t *buf, uint16_t buflen); const uint8_t *buf, uint16_t buflen);
uint32_t SCACTileSearchSmall64(SCACTileSearchCtx *ctx, MpmThreadCtx *mpm_thread_ctx, uint32_t SCACTileSearchSmall64(const SCACTileSearchCtx *ctx, MpmThreadCtx *mpm_thread_ctx,
PatternMatcherQueue *pmq, PatternMatcherQueue *pmq,
uint8_t *buf, uint16_t buflen); const uint8_t *buf, uint16_t buflen);
uint32_t SCACTileSearchSmall32(SCACTileSearchCtx *ctx, MpmThreadCtx *mpm_thread_ctx, uint32_t SCACTileSearchSmall32(const SCACTileSearchCtx *ctx, MpmThreadCtx *mpm_thread_ctx,
PatternMatcherQueue *pmq, PatternMatcherQueue *pmq,
uint8_t *buf, uint16_t buflen); const uint8_t *buf, uint16_t buflen);
uint32_t SCACTileSearchSmall16(SCACTileSearchCtx *ctx, MpmThreadCtx *mpm_thread_ctx, uint32_t SCACTileSearchSmall16(const SCACTileSearchCtx *ctx, MpmThreadCtx *mpm_thread_ctx,
PatternMatcherQueue *pmq, PatternMatcherQueue *pmq,
uint8_t *buf, uint16_t buflen); const uint8_t *buf, uint16_t buflen);
uint32_t SCACTileSearchSmall8(SCACTileSearchCtx *ctx, MpmThreadCtx *mpm_thread_ctx, uint32_t SCACTileSearchSmall8(const SCACTileSearchCtx *ctx, MpmThreadCtx *mpm_thread_ctx,
PatternMatcherQueue *pmq, PatternMatcherQueue *pmq,
uint8_t *buf, uint16_t buflen); const uint8_t *buf, uint16_t buflen);
uint32_t SCACTileSearchTiny256(SCACTileSearchCtx *ctx, MpmThreadCtx *mpm_thread_ctx, uint32_t SCACTileSearchTiny256(const SCACTileSearchCtx *ctx, MpmThreadCtx *mpm_thread_ctx,
PatternMatcherQueue *pmq, PatternMatcherQueue *pmq,
uint8_t *buf, uint16_t buflen); const uint8_t *buf, uint16_t buflen);
uint32_t SCACTileSearchTiny128(SCACTileSearchCtx *ctx, MpmThreadCtx *mpm_thread_ctx, uint32_t SCACTileSearchTiny128(const SCACTileSearchCtx *ctx, MpmThreadCtx *mpm_thread_ctx,
PatternMatcherQueue *pmq, PatternMatcherQueue *pmq,
uint8_t *buf, uint16_t buflen); const uint8_t *buf, uint16_t buflen);
uint32_t SCACTileSearchTiny64(SCACTileSearchCtx *ctx, MpmThreadCtx *mpm_thread_ctx, uint32_t SCACTileSearchTiny64(const SCACTileSearchCtx *ctx, MpmThreadCtx *mpm_thread_ctx,
PatternMatcherQueue *pmq, PatternMatcherQueue *pmq,
uint8_t *buf, uint16_t buflen); const uint8_t *buf, uint16_t buflen);
uint32_t SCACTileSearchTiny32(SCACTileSearchCtx *ctx, MpmThreadCtx *mpm_thread_ctx, uint32_t SCACTileSearchTiny32(const SCACTileSearchCtx *ctx, MpmThreadCtx *mpm_thread_ctx,
PatternMatcherQueue *pmq, PatternMatcherQueue *pmq,
uint8_t *buf, uint16_t buflen); const uint8_t *buf, uint16_t buflen);
uint32_t SCACTileSearchTiny16(SCACTileSearchCtx *ctx, MpmThreadCtx *mpm_thread_ctx, uint32_t SCACTileSearchTiny16(const SCACTileSearchCtx *ctx, MpmThreadCtx *mpm_thread_ctx,
PatternMatcherQueue *pmq, PatternMatcherQueue *pmq,
uint8_t *buf, uint16_t buflen); const uint8_t *buf, uint16_t buflen);
uint32_t SCACTileSearchTiny8(SCACTileSearchCtx *ctx, MpmThreadCtx *mpm_thread_ctx, uint32_t SCACTileSearchTiny8(const SCACTileSearchCtx *ctx, MpmThreadCtx *mpm_thread_ctx,
PatternMatcherQueue *pmq, PatternMatcherQueue *pmq,
uint8_t *buf, uint16_t buflen); const uint8_t *buf, uint16_t buflen);
static void SCACTileDestroyInitCtx(MpmCtx *mpm_ctx); static void SCACTileDestroyInitCtx(MpmCtx *mpm_ctx);
@ -1490,13 +1490,13 @@ void SCACTileDestroyCtx(MpmCtx *mpm_ctx)
#define EXTRA 4 // need 4 extra bytes to avoid OOB reads #define EXTRA 4 // need 4 extra bytes to avoid OOB reads
#endif #endif
int CheckMatch(SCACTileSearchCtx *ctx, PatternMatcherQueue *pmq, int CheckMatch(const SCACTileSearchCtx *ctx, PatternMatcherQueue *pmq,
uint8_t *buf, uint16_t buflen, const uint8_t *buf, uint16_t buflen,
uint16_t state, int i, int matches, uint16_t state, int i, int matches,
uint8_t *mpm_bitarray) uint8_t *mpm_bitarray)
{ {
SCACTilePatternList *pattern_list = ctx->pattern_list; SCACTilePatternList *pattern_list = ctx->pattern_list;
uint8_t *buf_offset = buf + i + 1; // Lift out of loop const uint8_t *buf_offset = buf + i + 1; // Lift out of loop
uint32_t no_of_entries = ctx->output_table[state].no_of_entries; uint32_t no_of_entries = ctx->output_table[state].no_of_entries;
MpmPatternIndex *patterns = ctx->output_table[state].patterns; MpmPatternIndex *patterns = ctx->output_table[state].patterns;
uint8_t *pmq_bitarray = pmq->pattern_id_bitarray; uint8_t *pmq_bitarray = pmq->pattern_id_bitarray;
@ -1559,10 +1559,10 @@ int CheckMatch(SCACTileSearchCtx *ctx, PatternMatcherQueue *pmq,
* *
* \retval matches Match count. * \retval matches Match count.
*/ */
uint32_t SCACTileSearch(MpmCtx *mpm_ctx, MpmThreadCtx *mpm_thread_ctx, uint32_t SCACTileSearch(const MpmCtx *mpm_ctx, MpmThreadCtx *mpm_thread_ctx,
PatternMatcherQueue *pmq, uint8_t *buf, uint16_t buflen) PatternMatcherQueue *pmq, const uint8_t *buf, uint16_t buflen)
{ {
SCACTileSearchCtx *search_ctx = (SCACTileSearchCtx *)mpm_ctx->ctx; const SCACTileSearchCtx *search_ctx = (SCACTileSearchCtx *)mpm_ctx->ctx;
if (buflen == 0) if (buflen == 0)
return 0; return 0;
@ -1572,9 +1572,9 @@ uint32_t SCACTileSearch(MpmCtx *mpm_ctx, MpmThreadCtx *mpm_thread_ctx,
} }
/* This function handles (ctx->state_count >= 32767) */ /* This function handles (ctx->state_count >= 32767) */
uint32_t SCACTileSearchLarge(SCACTileSearchCtx *ctx, MpmThreadCtx *mpm_thread_ctx, uint32_t SCACTileSearchLarge(const SCACTileSearchCtx *ctx, MpmThreadCtx *mpm_thread_ctx,
PatternMatcherQueue *pmq, PatternMatcherQueue *pmq,
uint8_t *buf, uint16_t buflen) const uint8_t *buf, uint16_t buflen)
{ {
int i = 0; int i = 0;
int matches = 0; int matches = 0;
@ -1582,7 +1582,7 @@ uint32_t SCACTileSearchLarge(SCACTileSearchCtx *ctx, MpmThreadCtx *mpm_thread_ct
uint8_t mpm_bitarray[ctx->mpm_bitarray_size]; uint8_t mpm_bitarray[ctx->mpm_bitarray_size];
memset(mpm_bitarray, 0, ctx->mpm_bitarray_size); memset(mpm_bitarray, 0, ctx->mpm_bitarray_size);
uint8_t* restrict xlate = ctx->translate_table; const uint8_t* restrict xlate = ctx->translate_table;
register int state = 0; register int state = 0;
int32_t (*state_table_u32)[256] = ctx->state_table; int32_t (*state_table_u32)[256] = ctx->state_table;
for (i = 0; i < buflen; i++) { for (i = 0; i < buflen; i++) {

@ -84,8 +84,8 @@ typedef struct SCACTileCtx_ {
* number of states could make the next state could be 16 bits or * number of states could make the next state could be 16 bits or
* 32 bits. * 32 bits.
*/ */
uint32_t (*search)(struct SCACTileSearchCtx_ *ctx, struct MpmThreadCtx_ *, uint32_t (*search)(const struct SCACTileSearchCtx_ *ctx, struct MpmThreadCtx_ *,
PatternMatcherQueue *, uint8_t *, uint16_t); PatternMatcherQueue *, const uint8_t *, uint16_t);
/* Function to set the next state based on size of next state /* Function to set the next state based on size of next state
* (bytes_per_state). * (bytes_per_state).
@ -140,8 +140,8 @@ typedef struct SCACTileSearchCtx_ {
* number of states could make the next state could be 16 bits or * number of states could make the next state could be 16 bits or
* 32 bits. * 32 bits.
*/ */
uint32_t (*search)(struct SCACTileSearchCtx_ *ctx, struct MpmThreadCtx_ *, uint32_t (*search)(const struct SCACTileSearchCtx_ *ctx, struct MpmThreadCtx_ *,
PatternMatcherQueue *, uint8_t *, uint16_t); PatternMatcherQueue *, const uint8_t *, uint16_t);
/* Convert input character to matching alphabet */ /* Convert input character to matching alphabet */
uint8_t translate_table[256]; uint8_t translate_table[256];

@ -78,8 +78,8 @@ int SCACAddPatternCI(MpmCtx *, uint8_t *, uint16_t, uint16_t, uint16_t,
int SCACAddPatternCS(MpmCtx *, uint8_t *, uint16_t, uint16_t, uint16_t, int SCACAddPatternCS(MpmCtx *, uint8_t *, uint16_t, uint16_t, uint16_t,
uint32_t, SigIntId, uint8_t); uint32_t, SigIntId, uint8_t);
int SCACPreparePatterns(MpmCtx *mpm_ctx); int SCACPreparePatterns(MpmCtx *mpm_ctx);
uint32_t SCACSearch(MpmCtx *mpm_ctx, MpmThreadCtx *mpm_thread_ctx, uint32_t SCACSearch(const MpmCtx *mpm_ctx, MpmThreadCtx *mpm_thread_ctx,
PatternMatcherQueue *pmq, uint8_t *buf, uint16_t buflen); PatternMatcherQueue *pmq, const uint8_t *buf, uint16_t buflen);
void SCACPrintInfo(MpmCtx *mpm_ctx); void SCACPrintInfo(MpmCtx *mpm_ctx);
void SCACPrintSearchStats(MpmThreadCtx *mpm_thread_ctx); void SCACPrintSearchStats(MpmThreadCtx *mpm_thread_ctx);
void SCACRegisterTests(void); void SCACRegisterTests(void);
@ -1302,10 +1302,10 @@ void SCACDestroyCtx(MpmCtx *mpm_ctx)
* *
* \retval matches Match count. * \retval matches Match count.
*/ */
uint32_t SCACSearch(MpmCtx *mpm_ctx, MpmThreadCtx *mpm_thread_ctx, uint32_t SCACSearch(const MpmCtx *mpm_ctx, MpmThreadCtx *mpm_thread_ctx,
PatternMatcherQueue *pmq, uint8_t *buf, uint16_t buflen) PatternMatcherQueue *pmq, const uint8_t *buf, uint16_t buflen)
{ {
SCACCtx *ctx = (SCACCtx *)mpm_ctx->ctx; const SCACCtx *ctx = (SCACCtx *)mpm_ctx->ctx;
int i = 0; int i = 0;
int matches = 0; int matches = 0;
@ -1829,7 +1829,7 @@ static void *SCACCudaDispatcher(void *arg)
#undef BLOCK_SIZE #undef BLOCK_SIZE
} }
uint32_t SCACCudaPacketResultsProcessing(Packet *p, MpmCtx *mpm_ctx, uint32_t SCACCudaPacketResultsProcessing(Packet *p, const MpmCtx *mpm_ctx,
PatternMatcherQueue *pmq) PatternMatcherQueue *pmq)
{ {
uint32_t u = 0; uint32_t u = 0;

@ -209,7 +209,7 @@ int MpmCudaBufferSetup(void);
int MpmCudaBufferDeSetup(void); int MpmCudaBufferDeSetup(void);
void SCACCudaStartDispatcher(void); void SCACCudaStartDispatcher(void);
void SCACCudaKillDispatcher(void); void SCACCudaKillDispatcher(void);
uint32_t SCACCudaPacketResultsProcessing(Packet *p, MpmCtx *mpm_ctx, uint32_t SCACCudaPacketResultsProcessing(Packet *p, const MpmCtx *mpm_ctx,
PatternMatcherQueue *pmq); PatternMatcherQueue *pmq);
void DetermineCudaStateTableSize(DetectEngineCtx *de_ctx); void DetermineCudaStateTableSize(DetectEngineCtx *de_ctx);

@ -54,8 +54,8 @@ int SCHSAddPatternCI(MpmCtx *, uint8_t *, uint16_t, uint16_t, uint16_t,
int SCHSAddPatternCS(MpmCtx *, uint8_t *, uint16_t, uint16_t, uint16_t, int SCHSAddPatternCS(MpmCtx *, uint8_t *, uint16_t, uint16_t, uint16_t,
uint32_t, SigIntId, uint8_t); uint32_t, SigIntId, uint8_t);
int SCHSPreparePatterns(MpmCtx *mpm_ctx); int SCHSPreparePatterns(MpmCtx *mpm_ctx);
uint32_t SCHSSearch(MpmCtx *mpm_ctx, MpmThreadCtx *mpm_thread_ctx, uint32_t SCHSSearch(const MpmCtx *mpm_ctx, MpmThreadCtx *mpm_thread_ctx,
PatternMatcherQueue *pmq, uint8_t *buf, uint16_t buflen); PatternMatcherQueue *pmq, const uint8_t *buf, const uint16_t buflen);
void SCHSPrintInfo(MpmCtx *mpm_ctx); void SCHSPrintInfo(MpmCtx *mpm_ctx);
void SCHSPrintSearchStats(MpmThreadCtx *mpm_thread_ctx); void SCHSPrintSearchStats(MpmThreadCtx *mpm_thread_ctx);
void SCHSRegisterTests(void); void SCHSRegisterTests(void);
@ -940,8 +940,8 @@ static int SCHSMatchEvent(unsigned int id, unsigned long long from,
* *
* \retval matches Match count. * \retval matches Match count.
*/ */
uint32_t SCHSSearch(MpmCtx *mpm_ctx, MpmThreadCtx *mpm_thread_ctx, uint32_t SCHSSearch(const MpmCtx *mpm_ctx, MpmThreadCtx *mpm_thread_ctx,
PatternMatcherQueue *pmq, uint8_t *buf, uint16_t buflen) PatternMatcherQueue *pmq, const uint8_t *buf, const uint16_t buflen)
{ {
uint32_t ret = 0; uint32_t ret = 0;
SCHSCtx *ctx = (SCHSCtx *)mpm_ctx->ctx; SCHSCtx *ctx = (SCHSCtx *)mpm_ctx->ctx;

@ -156,7 +156,7 @@ typedef struct MpmTableElmt_ {
int (*AddPattern)(struct MpmCtx_ *, uint8_t *, uint16_t, uint16_t, uint16_t, uint32_t, SigIntId, uint8_t); int (*AddPattern)(struct MpmCtx_ *, uint8_t *, uint16_t, uint16_t, uint16_t, uint32_t, SigIntId, uint8_t);
int (*AddPatternNocase)(struct MpmCtx_ *, uint8_t *, uint16_t, uint16_t, uint16_t, uint32_t, SigIntId, uint8_t); int (*AddPatternNocase)(struct MpmCtx_ *, uint8_t *, uint16_t, uint16_t, uint16_t, uint32_t, SigIntId, uint8_t);
int (*Prepare)(struct MpmCtx_ *); int (*Prepare)(struct MpmCtx_ *);
uint32_t (*Search)(struct MpmCtx_ *, struct MpmThreadCtx_ *, PatternMatcherQueue *, uint8_t *, uint16_t); uint32_t (*Search)(const struct MpmCtx_ *, struct MpmThreadCtx_ *, PatternMatcherQueue *, const uint8_t *, uint16_t);
void (*Cleanup)(struct MpmThreadCtx_ *); void (*Cleanup)(struct MpmThreadCtx_ *);
void (*PrintCtx)(struct MpmCtx_ *); void (*PrintCtx)(struct MpmCtx_ *);
void (*PrintThreadCtx)(struct MpmThreadCtx_ *); void (*PrintThreadCtx)(struct MpmThreadCtx_ *);

Loading…
Cancel
Save