通用解析器¶
概述¶
通用解析器是一个简单的解析器,用于解析挂载选项、文件系统选项、驱动程序选项、子系统选项等。
解析器 API¶
-
int match_token(char *s, const match_table_t table, substring_t args[])¶
在字符串中查找令牌(和可选参数)
参数
char *s
用于检查令牌/参数对的字符串
const match_table_t table
描述允许的选项令牌集及其可能关联的参数的 match_table_t。必须以一个其模式设置为 NULL 指针的
struct match_token
终止。substring_t args[]
MAX_OPT_ARGS
个substring_t
元素的数组。用于返回匹配位置。
描述
检测是否传入了一组令牌字符串中的任何一个。令牌可以包含最多 MAX_OPT_ARGS
个基本 C 风格格式标识符实例,这些实例将在匹配令牌时被考虑,其位置将返回在 args 数组中。
-
int match_int(substring_t *s, int *result)¶
从 substring_t 中扫描整数的十进制表示
参数
substring_t *s
要扫描的 substring_t
int *result
成功时得到的整数
描述
尝试将 substring_t
s 解析为十进制整数。
返回
成功时,将 result 设置为字符串表示的整数并返回 0。失败时返回 -EINVAL 或 -ERANGE。
-
int match_uint(substring_t *s, unsigned int *result)¶
从 substring_t 中扫描整数的十进制表示
参数
substring_t *s
要扫描的 substring_t
unsigned int *result
成功时得到的整数
描述
尝试将 substring_t
s 解析为十进制整数。
返回
成功时,将 result 设置为字符串表示的整数并返回 0。失败时返回 -EINVAL 或 -ERANGE。
-
int match_u64(substring_t *s, u64 *result)¶
从 substring_t 中扫描 u64 的十进制表示
参数
substring_t *s
要扫描的 substring_t
u64 *result
成功时得到的无符号长长整数
描述
尝试将 substring_t
s 解析为长十进制整数。
返回
成功时,将 result 设置为字符串表示的整数并返回 0。失败时返回 -EINVAL 或 -ERANGE。
-
int match_octal(substring_t *s, int *result)¶
从 substring_t 中扫描整数的八进制表示
参数
substring_t *s
要扫描的 substring_t
int *result
成功时得到的整数
描述
尝试将 substring_t
s 解析为八进制整数。
返回
成功时,将 result 设置为字符串表示的整数并返回 0。失败时返回 -EINVAL 或 -ERANGE。
-
int match_hex(substring_t *s, int *result)¶
从 substring_t 中扫描整数的十六进制表示
参数
substring_t *s
要扫描的 substring_t
int *result
成功时得到的整数
描述
尝试将 substring_t
s 解析为十六进制整数。
返回
成功时,将 result 设置为字符串表示的整数并返回 0。失败时返回 -EINVAL 或 -ERANGE。
-
bool match_wildcard(const char *pattern, const char *str)¶
解析字符串是否与给定通配符模式匹配
参数
const char *pattern
通配符模式
const char *str
要解析的字符串
描述
解析字符串 str 以检查是否与通配符模式 pattern 匹配。模式可以包含两种类型的通配符
‘*’ - 匹配零个或多个字符
‘?’ - 匹配一个字符
返回
如果 str 与 pattern 匹配,返回 true,否则返回 false。
-
size_t match_strlcpy(char *dest, const substring_t *src, size_t size)¶
将字符从 substring_t 复制到大小确定的缓冲区
参数
char *dest
复制到哪里
const substring_t *src
要复制的
substring_t
size_t size
目标缓冲区的大小
描述
将 substring_t
src 中的字符复制到 C 风格字符串 dest。复制字符数不超过 size - 1,加上终止 NUL 字符。
返回
src 的长度。
-
char *match_strdup(const substring_t *s)¶
使用 substring_t 的内容分配新字符串
参数
const substring_t *s
要复制的
substring_t
描述
分配并返回一个填充了 substring_t
s 内容的字符串。调用者负责使用 kfree()
释放返回的字符串。
返回
新分配的以 NUL 结尾的字符串地址,错误时为 NULL
。