diff options
Diffstat (limited to 'lib/string.c')
| -rw-r--r-- | lib/string.c | 29 | 
1 files changed, 29 insertions, 0 deletions
| diff --git a/lib/string.c b/lib/string.c index f71bead1be3e..01fad9b203e1 100644 --- a/lib/string.c +++ b/lib/string.c @@ -535,6 +535,35 @@ bool sysfs_streq(const char *s1, const char *s2)  }  EXPORT_SYMBOL(sysfs_streq); +/** + * strtobool - convert common user inputs into boolean values + * @s: input string + * @res: result + * + * This routine returns 0 iff the first character is one of 'Yy1Nn0'. + * Otherwise it will return -EINVAL.  Value pointed to by res is + * updated upon finding a match. + */ +int strtobool(const char *s, bool *res) +{ +	switch (s[0]) { +	case 'y': +	case 'Y': +	case '1': +		*res = true; +		break; +	case 'n': +	case 'N': +	case '0': +		*res = false; +		break; +	default: +		return -EINVAL; +	} +	return 0; +} +EXPORT_SYMBOL(strtobool); +  #ifndef __HAVE_ARCH_MEMSET  /**   * memset - Fill a region of memory with the given value |