summaryrefslogtreecommitdiff
path: root/lib/kstrtox.h
blob: 73dee79fd8ed2ad72aaae8b9c27ec55054fd2e2b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
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