Lines Matching refs:state
420 #define match_char(state, def, base, next, check, C) \ argument
422 u32 b = (base)[(state)]; \
424 if ((check)[pos] != (state)) { \
425 (state) = (def)[(state)]; \
430 (state) = (next)[pos]; \
457 aa_state_t state = start; in aa_dfa_match_len() local
459 if (state == DFA_NOMATCH) in aa_dfa_match_len()
467 match_char(state, def, base, next, check, in aa_dfa_match_len()
472 match_char(state, def, base, next, check, (u8) *str++); in aa_dfa_match_len()
475 return state; in aa_dfa_match_len()
496 aa_state_t state = start; in aa_dfa_match() local
498 if (state == DFA_NOMATCH) in aa_dfa_match()
507 match_char(state, def, base, next, check, in aa_dfa_match()
512 match_char(state, def, base, next, check, (u8) *str++); in aa_dfa_match()
515 return state; in aa_dfa_match()
528 aa_state_t aa_dfa_next(struct aa_dfa *dfa, aa_state_t state, const char c) in aa_dfa_next() argument
539 match_char(state, def, base, next, check, equiv[(u8) c]); in aa_dfa_next()
541 match_char(state, def, base, next, check, (u8) c); in aa_dfa_next()
543 return state; in aa_dfa_next()
546 aa_state_t aa_dfa_outofband_transition(struct aa_dfa *dfa, aa_state_t state) in aa_dfa_outofband_transition() argument
552 u32 b = (base)[(state)]; in aa_dfa_outofband_transition()
558 match_char(state, def, base, next, check, -1); in aa_dfa_outofband_transition()
560 return state; in aa_dfa_outofband_transition()
584 aa_state_t state = start, pos; in aa_dfa_match_until() local
586 if (state == DFA_NOMATCH) in aa_dfa_match_until()
595 pos = base_idx(base[state]) + equiv[(u8) *str++]; in aa_dfa_match_until()
596 if (check[pos] == state) in aa_dfa_match_until()
597 state = next[pos]; in aa_dfa_match_until()
599 state = def[state]; in aa_dfa_match_until()
600 if (accept[state]) in aa_dfa_match_until()
606 pos = base_idx(base[state]) + (u8) *str++; in aa_dfa_match_until()
607 if (check[pos] == state) in aa_dfa_match_until()
608 state = next[pos]; in aa_dfa_match_until()
610 state = def[state]; in aa_dfa_match_until()
611 if (accept[state]) in aa_dfa_match_until()
617 return state; in aa_dfa_match_until()
645 aa_state_t state = start, pos; in aa_dfa_matchn_until() local
648 if (state == DFA_NOMATCH) in aa_dfa_matchn_until()
657 pos = base_idx(base[state]) + equiv[(u8) *str++]; in aa_dfa_matchn_until()
658 if (check[pos] == state) in aa_dfa_matchn_until()
659 state = next[pos]; in aa_dfa_matchn_until()
661 state = def[state]; in aa_dfa_matchn_until()
662 if (accept[state]) in aa_dfa_matchn_until()
668 pos = base_idx(base[state]) + (u8) *str++; in aa_dfa_matchn_until()
669 if (check[pos] == state) in aa_dfa_matchn_until()
670 state = next[pos]; in aa_dfa_matchn_until()
672 state = def[state]; in aa_dfa_matchn_until()
673 if (accept[state]) in aa_dfa_matchn_until()
679 return state; in aa_dfa_matchn_until()
692 static bool is_loop(struct match_workbuf *wb, aa_state_t state, in is_loop() argument
698 if (wb->history[pos] < state) in is_loop()
702 if (wb->history[pos] == state) { in is_loop()
721 aa_state_t state = start, pos; in leftmatch_fb() local
729 if (state == DFA_NOMATCH) in leftmatch_fb()
740 wb->history[wb->pos] = state; in leftmatch_fb()
741 pos = base_idx(base[state]) + equiv[(u8) *str++]; in leftmatch_fb()
742 if (check[pos] == state) in leftmatch_fb()
743 state = next[pos]; in leftmatch_fb()
745 state = def[state]; in leftmatch_fb()
746 if (is_loop(wb, state, &adjust)) { in leftmatch_fb()
747 state = aa_dfa_match(dfa, state, str); in leftmatch_fb()
759 wb->history[wb->pos] = state; in leftmatch_fb()
760 pos = base_idx(base[state]) + (u8) *str++; in leftmatch_fb()
761 if (check[pos] == state) in leftmatch_fb()
762 state = next[pos]; in leftmatch_fb()
764 state = def[state]; in leftmatch_fb()
765 if (is_loop(wb, state, &adjust)) { in leftmatch_fb()
766 state = aa_dfa_match(dfa, state, str); in leftmatch_fb()
776 if (!state) in leftmatch_fb()
778 return state; in leftmatch_fb()