1b2441318SGreg Kroah-Hartman /* SPDX-License-Identifier: GPL-2.0 */ 26408f79cSThomas Graf #ifndef __LINUX_TEXTSEARCH_FSM_H 36408f79cSThomas Graf #define __LINUX_TEXTSEARCH_FSM_H 46408f79cSThomas Graf 56408f79cSThomas Graf #include <linux/types.h> 66408f79cSThomas Graf 76408f79cSThomas Graf enum { 86408f79cSThomas Graf TS_FSM_SPECIFIC, /* specific character */ 96408f79cSThomas Graf TS_FSM_WILDCARD, /* any character */ 106408f79cSThomas Graf TS_FSM_DIGIT, /* isdigit() */ 116408f79cSThomas Graf TS_FSM_XDIGIT, /* isxdigit() */ 126408f79cSThomas Graf TS_FSM_PRINT, /* isprint() */ 136408f79cSThomas Graf TS_FSM_ALPHA, /* isalpha() */ 146408f79cSThomas Graf TS_FSM_ALNUM, /* isalnum() */ 156408f79cSThomas Graf TS_FSM_ASCII, /* isascii() */ 166408f79cSThomas Graf TS_FSM_CNTRL, /* iscntrl() */ 176408f79cSThomas Graf TS_FSM_GRAPH, /* isgraph() */ 186408f79cSThomas Graf TS_FSM_LOWER, /* islower() */ 196408f79cSThomas Graf TS_FSM_UPPER, /* isupper() */ 206408f79cSThomas Graf TS_FSM_PUNCT, /* ispunct() */ 216408f79cSThomas Graf TS_FSM_SPACE, /* isspace() */ 226408f79cSThomas Graf __TS_FSM_TYPE_MAX, 236408f79cSThomas Graf }; 246408f79cSThomas Graf #define TS_FSM_TYPE_MAX (__TS_FSM_TYPE_MAX - 1) 256408f79cSThomas Graf 266408f79cSThomas Graf enum { 276408f79cSThomas Graf TS_FSM_SINGLE, /* 1 occurrence */ 286408f79cSThomas Graf TS_FSM_PERHAPS, /* 1 or 0 occurrence */ 296408f79cSThomas Graf TS_FSM_ANY, /* 0..n occurrences */ 306408f79cSThomas Graf TS_FSM_MULTI, /* 1..n occurrences */ 316408f79cSThomas Graf TS_FSM_HEAD_IGNORE, /* 0..n ignored occurrences at head */ 326408f79cSThomas Graf __TS_FSM_RECUR_MAX, 336408f79cSThomas Graf }; 346408f79cSThomas Graf #define TS_FSM_RECUR_MAX (__TS_FSM_RECUR_MAX - 1) 356408f79cSThomas Graf 366408f79cSThomas Graf /** 376408f79cSThomas Graf * struct ts_fsm_token - state machine token (state) 386408f79cSThomas Graf * @type: type of token 396408f79cSThomas Graf * @recur: number of recurrences 406408f79cSThomas Graf * @value: character value for TS_FSM_SPECIFIC 416408f79cSThomas Graf */ 426408f79cSThomas Graf struct ts_fsm_token 436408f79cSThomas Graf { 446408f79cSThomas Graf __u16 type; 456408f79cSThomas Graf __u8 recur; 466408f79cSThomas Graf __u8 value; 476408f79cSThomas Graf }; 486408f79cSThomas Graf 496408f79cSThomas Graf #endif 50