Linux Audio

Check our new training course

Loading...
Note: File does not exist in v3.1.
 1// SPDX-License-Identifier: GPL-2.0-only
 2/*
 3 * From lib/cmdline.c
 4 */
 5#include <stdlib.h>
 6
 7#if __has_attribute(__fallthrough__)
 8# define fallthrough                    __attribute__((__fallthrough__))
 9#else
10# define fallthrough                    do {} while (0)  /* fallthrough */
11#endif
12
13unsigned long long memparse(const char *ptr, char **retptr)
14{
15	char *endptr;	/* local pointer to end of parsed string */
16
17	unsigned long long ret = strtoll(ptr, &endptr, 0);
18
19	switch (*endptr) {
20	case 'E':
21	case 'e':
22		ret <<= 10;
23		fallthrough;
24	case 'P':
25	case 'p':
26		ret <<= 10;
27		fallthrough;
28	case 'T':
29	case 't':
30		ret <<= 10;
31		fallthrough;
32	case 'G':
33	case 'g':
34		ret <<= 10;
35		fallthrough;
36	case 'M':
37	case 'm':
38		ret <<= 10;
39		fallthrough;
40	case 'K':
41	case 'k':
42		ret <<= 10;
43		endptr++;
44		fallthrough;
45	default:
46		break;
47	}
48
49	if (retptr)
50		*retptr = endptr;
51
52	return ret;
53}