mirror of
https://github.com/VectorCamp/vectorscan.git
synced 2025-11-17 01:41:51 +03:00
tamarama: add container engine for exclusive nfas
Add the new Tamarama engine that acts as a container for infix/suffix engines that can be proven to run exclusively of one another. This reduces stream state for pattern sets with many exclusive engines.
This commit is contained in:
@@ -120,6 +120,13 @@ char nfaInitCompressedState(const struct NFA *nfa, u64a offset, void *state,
|
||||
*/
|
||||
char nfaQueueExec(const struct NFA *nfa, struct mq *q, s64a end);
|
||||
|
||||
/**
|
||||
* Main execution function that doesn't perform the checks and optimisations of
|
||||
* nfaQueueExec() and just dispatches directly to the nfa implementations. It is
|
||||
* intended to be used by the Tamarama engine.
|
||||
*/
|
||||
char nfaQueueExec_raw(const struct NFA *nfa, struct mq *q, s64a end);
|
||||
|
||||
/** Return value indicating that the engine is alive. */
|
||||
#define MO_ALIVE 1
|
||||
|
||||
@@ -155,6 +162,13 @@ char nfaQueueExec(const struct NFA *nfa, struct mq *q, s64a end);
|
||||
*/
|
||||
char nfaQueueExecToMatch(const struct NFA *nfa, struct mq *q, s64a end);
|
||||
|
||||
/**
|
||||
* Main execution function that doesn't perform the checks and optimisations of
|
||||
* nfaQueueExecToMatch() and just dispatches directly to the nfa
|
||||
* implementations. It is intended to be used by the Tamarama engine.
|
||||
*/
|
||||
char nfaQueueExec2_raw(const struct NFA *nfa, struct mq *q, s64a end);
|
||||
|
||||
/**
|
||||
* Report matches at the current queue location.
|
||||
*
|
||||
|
||||
Reference in New Issue
Block a user