Rose: pack global state bits into one u8

Eliminate the RoseRuntimeState structure in favour of a single status
byte that is stored in scratch and copied to/from stream state.
This commit is contained in:
Justin Viiret
2016-02-02 09:42:00 +11:00
committed by Matthew Barr
parent 28f379d738
commit 9e9bb6a960
14 changed files with 84 additions and 129 deletions

View File

@@ -48,8 +48,6 @@ typedef u64a rose_group;
#define MAX_DELAY (DELAY_SLOT_COUNT - 1)
#define DELAY_MASK (DELAY_SLOT_COUNT - 1)
#define DELAY_FLOAT_DIRTY (1U << 7) /* delay literal matched in history */
// Direct report stuff
#define LITERAL_DR_FLAG (1U << 31)
#define LITERAL_MDR_FLAG ((1U << 30) | (1U << 31))
@@ -214,7 +212,7 @@ struct NfaInfo {
*
* State not covered by this structure includes:
*
* -# the RoseRuntimeState structure
* -# the first byte, containing the status bitmask
* -# the role state multibit
*/
struct RoseStateOffsets {
@@ -476,12 +474,6 @@ struct RoseEngine {
struct scatter_full_plan state_init;
};
// Rose runtime state
struct RoseRuntimeState {
u8 flags; /* high bit true if delay rebuild needed */
u8 broken; /* user has requested that we stop matching */
};
struct ALIGN_CL_DIRECTIVE anchored_matcher_info {
u32 next_offset; /* relative to this, 0 for end */
u32 state_offset; /* relative to anchorState */