mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-12-29 17:25:38 +00:00
parser: add unsigned int parser
Will be used by fs parsing options Link: https://lore.kernel.org/r/20210129045242.10268-1-bingjingc@synology.com Reviewed-by: Robbie Ko<robbieko@synology.com> Reviewed-by: Chung-Chiang Cheng <cccheng@synology.com> Signed-off-by: BingJing Chang <bingjingc@synology.com> Signed-off-by: Jan Kara <jack@suse.cz>
This commit is contained in:
parent
63c9e47a16
commit
01531ac354
@ -29,6 +29,7 @@ typedef struct {
|
||||
|
||||
int match_token(char *, const match_table_t table, substring_t args[]);
|
||||
int match_int(substring_t *, int *result);
|
||||
int match_uint(substring_t *s, unsigned int *result);
|
||||
int match_u64(substring_t *, u64 *result);
|
||||
int match_octal(substring_t *, int *result);
|
||||
int match_hex(substring_t *, int *result);
|
||||
|
22
lib/parser.c
22
lib/parser.c
@ -188,6 +188,28 @@ int match_int(substring_t *s, int *result)
|
||||
}
|
||||
EXPORT_SYMBOL(match_int);
|
||||
|
||||
/*
|
||||
* match_uint - scan a decimal representation of an integer from a substring_t
|
||||
* @s: substring_t to be scanned
|
||||
* @result: resulting integer on success
|
||||
*
|
||||
* Description: Attempts to parse the &substring_t @s as a decimal integer. On
|
||||
* success, sets @result to the integer represented by the string and returns 0.
|
||||
* Returns -ENOMEM, -EINVAL, or -ERANGE on failure.
|
||||
*/
|
||||
int match_uint(substring_t *s, unsigned int *result)
|
||||
{
|
||||
int err = -ENOMEM;
|
||||
char *buf = match_strdup(s);
|
||||
|
||||
if (buf) {
|
||||
err = kstrtouint(buf, 10, result);
|
||||
kfree(buf);
|
||||
}
|
||||
return err;
|
||||
}
|
||||
EXPORT_SYMBOL(match_uint);
|
||||
|
||||
/**
|
||||
* match_u64: - scan a decimal representation of a u64 from
|
||||
* a substring_t
|
||||
|
Loading…
Reference in New Issue
Block a user