Generic parser¶
Overview¶
The generic parser is a simple parser for parsing mount options, filesystem options, driver options, subsystem options, etc.
Parser API¶
-
int match_token(char *s, const match_table_t table, substring_t args[])¶
Find a token (and optional args) in a string
Parameters
char *sthe string to examine for token/argument pairs
const match_table_t tablematch_table_t describing the set of allowed option tokens and the arguments that may be associated with them. Must be terminated with a
struct match_tokenwhose pattern is set to the NULL pointer.substring_t args[]array of
MAX_OPT_ARGSsubstring_telements. Used to return match locations.
Description
Detects which if any of a set of token strings has been passed
to it. Tokens can include up to MAX_OPT_ARGS instances of basic c-style
format identifiers which will be taken into account when matching the
tokens, and whose locations will be returned in the args array.
-
int match_int(substring_t *s, int *result)¶
scan a decimal representation of an integer from a substring_t
Parameters
substring_t *ssubstring_t to be scanned
int *resultresulting integer on success
Description
Attempts to parse the substring_t s as a decimal integer.
Return
On success, sets result to the integer represented by the string and returns 0. Returns -EINVAL or -ERANGE on failure.
-
int match_uint(substring_t *s, unsigned int *result)¶
scan a decimal representation of an integer from a substring_t
Parameters
substring_t *ssubstring_t to be scanned
unsigned int *resultresulting integer on success
Description
Attempts to parse the substring_t s as a decimal integer.
Return
On success, sets result to the integer represented by the string and returns 0. Returns -EINVAL or -ERANGE on failure.
-
int match_u64(substring_t *s, u64 *result)¶
scan a decimal representation of a u64 from a substring_t
Parameters
substring_t *ssubstring_t to be scanned
u64 *resultresulting unsigned long long on success
Description
Attempts to parse the substring_t s as a long decimal
integer.
Return
On success, sets result to the integer represented by the string and returns 0. Returns -EINVAL or -ERANGE on failure.
-
int match_octal(substring_t *s, int *result)¶
scan an octal representation of an integer from a substring_t
Parameters
substring_t *ssubstring_t to be scanned
int *resultresulting integer on success
Description
Attempts to parse the substring_t s as an octal integer.
Return
On success, sets result to the integer represented by the string and returns 0. Returns -EINVAL or -ERANGE on failure.
-
int match_hex(substring_t *s, int *result)¶
scan a hex representation of an integer from a substring_t
Parameters
substring_t *ssubstring_t to be scanned
int *resultresulting integer on success
Description
Attempts to parse the substring_t s as a hexadecimal integer.
Return
On success, sets result to the integer represented by the string and returns 0. Returns -EINVAL or -ERANGE on failure.
-
bool match_wildcard(const char *pattern, const char *str)¶
parse if a string matches given wildcard pattern
Parameters
const char *patternwildcard pattern
const char *strthe string to be parsed
Description
Parse the string str to check if matches wildcard pattern pattern. The pattern may contain two types of wildcards:
‘*’ - matches zero or more characters
‘?’ - matches one character
Return
If the str matches the pattern, return true, else return false.
-
size_t match_strlcpy(char *dest, const substring_t *src, size_t size)¶
Copy the characters from a substring_t to a sized buffer
Parameters
char *destwhere to copy to
const substring_t *srcsubstring_tto copysize_t sizesize of destination buffer
Description
Copy the characters in substring_t src to the
c-style string dest. Copy no more than size - 1 characters, plus
the terminating NUL.
Return
length of src.
-
char *match_strdup(const substring_t *s)¶
allocate a new string with the contents of a substring_t
Parameters
const substring_t *ssubstring_tto copy
Description
Allocates and returns a string filled with the contents of
the substring_t s. The caller is responsible for freeing the returned
string with kfree().
Return
the address of the newly allocated NUL-terminated string or
NULL on error.