summaryrefslogtreecommitdiffstats
path: root/lib/kstrtox.h
diff options
context:
space:
mode:
Diffstat (limited to 'lib/kstrtox.h')
-rw-r--r--lib/kstrtox.h24
1 files changed, 24 insertions, 0 deletions
diff --git a/lib/kstrtox.h b/lib/kstrtox.h
new file mode 100644
index 000000000..73dee79fd
--- /dev/null
+++ b/lib/kstrtox.h
@@ -0,0 +1,24 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+#ifndef _LIB_KSTRTOX_H
+#define _LIB_KSTRTOX_H
+
+#include <linux/args.h>
+
+#define KSTRTOX_OVERFLOW (1U << 31)
+const char *_parse_integer_fixup_radix(const char *s, unsigned int *base);
+unsigned int _parse_integer_limit(const char *s, unsigned int base, unsigned long long *res,
+ size_t max_chars, unsigned long long init);
+
+#define _parse_integer0(s, base, res, ...) \
+ _parse_integer_limit(s, base, res, INT_MAX, 0)
+
+#define _parse_integer1(s, base, res, max_chars, ...) \
+ _parse_integer_limit(s, base, res, max_chars, 0)
+
+#define _parse_integer2(s, base, res, max_chars, init, ...) \
+ _parse_integer_limit(s, base, res, max_chars, init)
+
+#define _parse_integer(s, base, res, ...) \
+ CONCATENATE(_parse_integer, COUNT_ARGS(__VA_ARGS__))(s, base, res, __VA_ARGS__)
+
+#endif