On Fri, 01 Jul 2016, Markus Mayer mmayer@broadcom.com wrote:
Add a function called strtolower() to convert strings to lower case in-place, overwriting the original string.
This seems to be a recurring requirement in the kernel that is currently being solved by several duplicated implementations doing the same thing.
Signed-off-by: Markus Mayer mmayer@broadcom.com
include/linux/string.h | 1 + lib/string.c | 14 ++++++++++++++ 2 files changed, 15 insertions(+)
diff --git a/include/linux/string.h b/include/linux/string.h index 26b6f6a..aad605e 100644 --- a/include/linux/string.h +++ b/include/linux/string.h @@ -116,6 +116,7 @@ extern void * memchr(const void *,int,__kernel_size_t); #endif void *memchr_inv(const void *s, int c, size_t n); char *strreplace(char *s, char old, char new); +char *strtolower(char *s);
extern void kfree_const(const void *x);
diff --git a/lib/string.c b/lib/string.c index ed83562..6e3b560 100644 --- a/lib/string.c +++ b/lib/string.c @@ -952,3 +952,17 @@ char *strreplace(char *s, char old, char new) return s; } EXPORT_SYMBOL(strreplace);
This needs a kernel-doc comment right here.
+char *strtolower(char *s) +{
- char *p;
if (unlikely(!s))
return NULL;
Using spaces for indentation? See scripts/checkpatch.pl.
- for (p = s; *p; p++)
*p = tolower(*p);
- return s;
Why does it return a value? Could be void?
BR, Jani.
+} +EXPORT_SYMBOL(strtolower);