diff options
author | Alexey Dobriyan <adobriyan@gmail.com> | 2011-10-31 20:12:28 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2011-10-31 20:30:56 -0400 |
commit | 1dff46d6987484eaa31f2fb1425216ba06418be3 (patch) | |
tree | 421e53d64a066b1f756156bb1d37154c0a5eab6a /lib/kstrtox.h | |
parent | b3c49c05b737887443c894c66635ae68dcdf0027 (diff) |
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.h | 8 |
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 @@ | |||
1 | #ifndef _LIB_KSTRTOX_H | ||
2 | #define _LIB_KSTRTOX_H | ||
3 | |||
4 | #define KSTRTOX_OVERFLOW (1U << 31) | ||
5 | const char *_parse_integer_fixup_radix(const char *s, unsigned int *base); | ||
6 | unsigned int _parse_integer(const char *s, unsigned int base, unsigned long long *res); | ||
7 | |||
8 | #endif | ||