diff options
Diffstat (limited to 'include/linux/parser.h')
| -rw-r--r-- | include/linux/parser.h | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/include/linux/parser.h b/include/linux/parser.h new file mode 100644 index 0000000000..fa3332861a --- /dev/null +++ b/include/linux/parser.h | |||
| @@ -0,0 +1,33 @@ | |||
| 1 | /* | ||
| 2 | * linux/include/linux/parser.h | ||
| 3 | * | ||
| 4 | * Header for lib/parser.c | ||
| 5 | * Intended use of these functions is parsing filesystem argument lists, | ||
| 6 | * but could potentially be used anywhere else that simple option=arg | ||
| 7 | * parsing is required. | ||
| 8 | */ | ||
| 9 | |||
| 10 | |||
| 11 | /* associates an integer enumerator with a pattern string. */ | ||
| 12 | struct match_token { | ||
| 13 | int token; | ||
| 14 | char *pattern; | ||
| 15 | }; | ||
| 16 | |||
| 17 | typedef struct match_token match_table_t[]; | ||
| 18 | |||
| 19 | /* Maximum number of arguments that match_token will find in a pattern */ | ||
| 20 | enum {MAX_OPT_ARGS = 3}; | ||
| 21 | |||
| 22 | /* Describe the location within a string of a substring */ | ||
| 23 | typedef struct { | ||
| 24 | char *from; | ||
| 25 | char *to; | ||
| 26 | } substring_t; | ||
| 27 | |||
| 28 | int match_token(char *, match_table_t table, substring_t args[]); | ||
| 29 | int match_int(substring_t *, int *result); | ||
| 30 | int match_octal(substring_t *, int *result); | ||
| 31 | int match_hex(substring_t *, int *result); | ||
| 32 | void match_strcpy(char *, substring_t *); | ||
| 33 | char *match_strdup(substring_t *); | ||
