aboutsummaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorAndy Shevchenko <andriy.shevchenko@linux.intel.com>2011-07-25 20:13:20 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2011-07-25 23:57:16 -0400
commit75fb8f269305fc066c4c6ec6e7232df0c92f434d (patch)
treebe2f806f817368cb52270baee3f1d77005e3ca8a /lib
parent72d39508e43689b9346dfc956fad5e94a8911886 (diff)
lib: make _tolower() public
This function is required by *printf and kstrto* functions that are located in the different modules. This patch makes _tolower() public. However, it's good idea to not use the helper outside of mentioned functions. [akpm@linux-foundation.org: coding-style fixes] Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> Acked-by: Alexey Dobriyan <adobriyan@gmail.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'lib')
-rw-r--r--lib/kstrtox.c5
-rw-r--r--lib/vsprintf.c23
2 files changed, 10 insertions, 18 deletions
diff --git a/lib/kstrtox.c b/lib/kstrtox.c
index 2dbae88090ac..5e066759f551 100644
--- a/lib/kstrtox.c
+++ b/lib/kstrtox.c
@@ -19,11 +19,6 @@
19#include <linux/types.h> 19#include <linux/types.h>
20#include <asm/uaccess.h> 20#include <asm/uaccess.h>
21 21
22static inline char _tolower(const char c)
23{
24 return c | 0x20;
25}
26
27static int _kstrtoull(const char *s, unsigned int base, unsigned long long *res) 22static int _kstrtoull(const char *s, unsigned int base, unsigned long long *res)
28{ 23{
29 unsigned long long acc; 24 unsigned long long acc;
diff --git a/lib/vsprintf.c b/lib/vsprintf.c
index 4365df31a1d5..39e3e8f1d4ec 100644
--- a/lib/vsprintf.c
+++ b/lib/vsprintf.c
@@ -31,13 +31,10 @@
31#include <asm/div64.h> 31#include <asm/div64.h>
32#include <asm/sections.h> /* for dereference_function_descriptor() */ 32#include <asm/sections.h> /* for dereference_function_descriptor() */
33 33
34/* Works only for digits and letters, but small and fast */
35#define TOLOWER(x) ((x) | 0x20)
36
37static unsigned int simple_guess_base(const char *cp) 34static unsigned int simple_guess_base(const char *cp)
38{ 35{
39 if (cp[0] == '0') { 36 if (cp[0] == '0') {
40 if (TOLOWER(cp[1]) == 'x' && isxdigit(cp[2])) 37 if (_tolower(cp[1]) == 'x' && isxdigit(cp[2]))
41 return 16; 38 return 16;
42 else 39 else
43 return 8; 40 return 8;
@@ -59,13 +56,13 @@ unsigned long long simple_strtoull(const char *cp, char **endp, unsigned int bas
59 if (!base) 56 if (!base)
60 base = simple_guess_base(cp); 57 base = simple_guess_base(cp);
61 58
62 if (base == 16 && cp[0] == '0' && TOLOWER(cp[1]) == 'x') 59 if (base == 16 && cp[0] == '0' && _tolower(cp[1]) == 'x')
63 cp += 2; 60 cp += 2;
64 61
65 while (isxdigit(*cp)) { 62 while (isxdigit(*cp)) {
66 unsigned int value; 63 unsigned int value;
67 64
68 value = isdigit(*cp) ? *cp - '0' : TOLOWER(*cp) - 'a' + 10; 65 value = isdigit(*cp) ? *cp - '0' : _tolower(*cp) - 'a' + 10;
69 if (value >= base) 66 if (value >= base)
70 break; 67 break;
71 result = result * base + value; 68 result = result * base + value;
@@ -1036,8 +1033,8 @@ precision:
1036qualifier: 1033qualifier:
1037 /* get the conversion qualifier */ 1034 /* get the conversion qualifier */
1038 spec->qualifier = -1; 1035 spec->qualifier = -1;
1039 if (*fmt == 'h' || TOLOWER(*fmt) == 'l' || 1036 if (*fmt == 'h' || _tolower(*fmt) == 'l' ||
1040 TOLOWER(*fmt) == 'z' || *fmt == 't') { 1037 _tolower(*fmt) == 'z' || *fmt == 't') {
1041 spec->qualifier = *fmt++; 1038 spec->qualifier = *fmt++;
1042 if (unlikely(spec->qualifier == *fmt)) { 1039 if (unlikely(spec->qualifier == *fmt)) {
1043 if (spec->qualifier == 'l') { 1040 if (spec->qualifier == 'l') {
@@ -1104,7 +1101,7 @@ qualifier:
1104 spec->type = FORMAT_TYPE_LONG; 1101 spec->type = FORMAT_TYPE_LONG;
1105 else 1102 else
1106 spec->type = FORMAT_TYPE_ULONG; 1103 spec->type = FORMAT_TYPE_ULONG;
1107 } else if (TOLOWER(spec->qualifier) == 'z') { 1104 } else if (_tolower(spec->qualifier) == 'z') {
1108 spec->type = FORMAT_TYPE_SIZE_T; 1105 spec->type = FORMAT_TYPE_SIZE_T;
1109 } else if (spec->qualifier == 't') { 1106 } else if (spec->qualifier == 't') {
1110 spec->type = FORMAT_TYPE_PTRDIFF; 1107 spec->type = FORMAT_TYPE_PTRDIFF;
@@ -1263,7 +1260,7 @@ int vsnprintf(char *buf, size_t size, const char *fmt, va_list args)
1263 if (qualifier == 'l') { 1260 if (qualifier == 'l') {
1264 long *ip = va_arg(args, long *); 1261 long *ip = va_arg(args, long *);
1265 *ip = (str - buf); 1262 *ip = (str - buf);
1266 } else if (TOLOWER(qualifier) == 'z') { 1263 } else if (_tolower(qualifier) == 'z') {
1267 size_t *ip = va_arg(args, size_t *); 1264 size_t *ip = va_arg(args, size_t *);
1268 *ip = (str - buf); 1265 *ip = (str - buf);
1269 } else { 1266 } else {
@@ -1550,7 +1547,7 @@ do { \
1550 void *skip_arg; 1547 void *skip_arg;
1551 if (qualifier == 'l') 1548 if (qualifier == 'l')
1552 skip_arg = va_arg(args, long *); 1549 skip_arg = va_arg(args, long *);
1553 else if (TOLOWER(qualifier) == 'z') 1550 else if (_tolower(qualifier) == 'z')
1554 skip_arg = va_arg(args, size_t *); 1551 skip_arg = va_arg(args, size_t *);
1555 else 1552 else
1556 skip_arg = va_arg(args, int *); 1553 skip_arg = va_arg(args, int *);
@@ -1856,8 +1853,8 @@ int vsscanf(const char *buf, const char *fmt, va_list args)
1856 1853
1857 /* get conversion qualifier */ 1854 /* get conversion qualifier */
1858 qualifier = -1; 1855 qualifier = -1;
1859 if (*fmt == 'h' || TOLOWER(*fmt) == 'l' || 1856 if (*fmt == 'h' || _tolower(*fmt) == 'l' ||
1860 TOLOWER(*fmt) == 'z') { 1857 _tolower(*fmt) == 'z') {
1861 qualifier = *fmt++; 1858 qualifier = *fmt++;
1862 if (unlikely(qualifier == *fmt)) { 1859 if (unlikely(qualifier == *fmt)) {
1863 if (qualifier == 'h') { 1860 if (qualifier == 'h') {