通用解析器¶
概述¶
通用解析器是一個簡單的解析器,用於解析掛載選項、檔案系統選項、驅動程式選項、子系統選項等。
解析器 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_tsize_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。