summaryrefslogtreecommitdiffstats
path: root/lib/kstrtox.h
diff options
context:
space:
mode:
authorAlexey Dobriyan2011-11-01 01:12:28 +0100
committerLinus Torvalds2011-11-01 01:30:56 +0100
commit1dff46d6987484eaa31f2fb1425216ba06418be3 (patch)
tree421e53d64a066b1f756156bb1d37154c0a5eab6a /lib/kstrtox.h
parentdrivers/leds/leds-lp5521.c: check if reset is successful (diff)
downloadkernel-qcow2-linux-1dff46d6987484eaa31f2fb1425216ba06418be3.tar.gz
kernel-qcow2-linux-1dff46d6987484eaa31f2fb1425216ba06418be3.tar.xz
kernel-qcow2-linux-1dff46d6987484eaa31f2fb1425216ba06418be3.zip
lib/kstrtox: common code between kstrto*() and simple_strto*() functions
Currently termination logic (\0 or \n\0) is hardcoded in _kstrtoull(), avoid that for code reuse between kstrto*() and simple_strtoull(). Essentially, make them different only in termination logic. simple_strtoull() (and scanf(), BTW) ignores integer overflow, that's a bug we currently don't have guts to fix, making KSTRTOX_OVERFLOW hack necessary. Almost forgot: patch shrinks code size by about ~80 bytes on x86_64. Signed-off-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/kstrtox.h')
-rw-r--r--lib/kstrtox.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/lib/kstrtox.h b/lib/kstrtox.h
new file mode 100644
index 000000000000..f13eeeaf441d
--- /dev/null
+++ b/lib/kstrtox.h
@@ -0,0 +1,8 @@
+#ifndef _LIB_KSTRTOX_H
+#define _LIB_KSTRTOX_H
+
+#define KSTRTOX_OVERFLOW (1U << 31)
+const char *_parse_integer_fixup_radix(const char *s, unsigned int *base);
+unsigned int _parse_integer(const char *s, unsigned int base, unsigned long long *res);
+
+#endif