Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0 */
0002 #ifndef __LINUX_TEXTSEARCH_FSM_H
0003 #define __LINUX_TEXTSEARCH_FSM_H
0004 
0005 #include <linux/types.h>
0006 
0007 enum {
0008     TS_FSM_SPECIFIC,    /* specific character */
0009     TS_FSM_WILDCARD,    /* any character */
0010     TS_FSM_DIGIT,       /* isdigit() */
0011     TS_FSM_XDIGIT,      /* isxdigit() */
0012     TS_FSM_PRINT,       /* isprint() */
0013     TS_FSM_ALPHA,       /* isalpha() */
0014     TS_FSM_ALNUM,       /* isalnum() */
0015     TS_FSM_ASCII,       /* isascii() */
0016     TS_FSM_CNTRL,       /* iscntrl() */
0017     TS_FSM_GRAPH,       /* isgraph() */
0018     TS_FSM_LOWER,       /* islower() */
0019     TS_FSM_UPPER,       /* isupper() */
0020     TS_FSM_PUNCT,       /* ispunct() */
0021     TS_FSM_SPACE,       /* isspace() */
0022     __TS_FSM_TYPE_MAX,
0023 };
0024 #define TS_FSM_TYPE_MAX (__TS_FSM_TYPE_MAX - 1)
0025 
0026 enum {
0027     TS_FSM_SINGLE,      /* 1 occurrence */
0028     TS_FSM_PERHAPS,     /* 1 or 0 occurrence */
0029     TS_FSM_ANY,     /* 0..n occurrences */
0030     TS_FSM_MULTI,       /* 1..n occurrences */
0031     TS_FSM_HEAD_IGNORE, /* 0..n ignored occurrences at head */
0032     __TS_FSM_RECUR_MAX,
0033 };
0034 #define TS_FSM_RECUR_MAX (__TS_FSM_RECUR_MAX - 1)
0035 
0036 /**
0037  * struct ts_fsm_token - state machine token (state)
0038  * @type: type of token
0039  * @recur: number of recurrences
0040  * @value: character value for TS_FSM_SPECIFIC
0041  */
0042 struct ts_fsm_token
0043 {
0044     __u16       type;
0045     __u8        recur;
0046     __u8        value;
0047 };
0048 
0049 #endif