diff options
author | Dave Young <dyoung@redhat.com> | 2014-08-14 17:15:27 +0800 |
---|---|---|
committer | Matt Fleming <matt.fleming@intel.com> | 2014-10-03 18:40:58 +0100 |
commit | 6ccc72b87b83ece31c2a75bbe07f440b0378f7a9 (patch) | |
tree | 777aaf2d1e492963dc65bff61c236edb31532650 /lib | |
parent | b2e0a54a1296a91b800f316df7bef7d1905e4fd0 (diff) | |
download | linux-6ccc72b87b83ece31c2a75bbe07f440b0378f7a9.tar.gz linux-6ccc72b87b83ece31c2a75bbe07f440b0378f7a9.tar.bz2 linux-6ccc72b87b83ece31c2a75bbe07f440b0378f7a9.zip |
lib: Add a generic cmdline parse function parse_option_str
There should be a generic function to parse params like a=b,c
Adding parse_option_str in lib/cmdline.c which will return true
if there's specified option set in the params.
Also updated efi=old_map parsing code to use the new function
Signed-off-by: Dave Young <dyoung@redhat.com>
Signed-off-by: Matt Fleming <matt.fleming@intel.com>
Diffstat (limited to 'lib')
-rw-r--r-- | lib/cmdline.c | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/lib/cmdline.c b/lib/cmdline.c index 76a712e6e20e..8f13cf73c2ec 100644 --- a/lib/cmdline.c +++ b/lib/cmdline.c @@ -160,3 +160,32 @@ unsigned long long memparse(const char *ptr, char **retptr) return ret; } EXPORT_SYMBOL(memparse); + +/** + * parse_option_str - Parse a string and check an option is set or not + * @str: String to be parsed + * @option: option name + * + * This function parses a string containing a comma-separated list of + * strings like a=b,c. + * + * Return true if there's such option in the string, or return false. + */ +bool parse_option_str(const char *str, const char *option) +{ + while (*str) { + if (!strncmp(str, option, strlen(option))) { + str += strlen(option); + if (!*str || *str == ',') + return true; + } + + while (*str && *str != ',') + str++; + + if (*str == ',') + str++; + } + + return false; +} |