accel/ivpu: Enable HWS by default on all platforms
[drm/drm-misc.git] / tools / lib / cmdline.c
blobc85f00f43c5e1e53cdff88eea6726cb8c8f1a8ff
1 // SPDX-License-Identifier: GPL-2.0-only
2 /*
3 * From lib/cmdline.c
4 */
5 #include <stdlib.h>
7 #if __has_attribute(__fallthrough__)
8 # define fallthrough __attribute__((__fallthrough__))
9 #else
10 # define fallthrough do {} while (0) /* fallthrough */
11 #endif
13 unsigned long long memparse(const char *ptr, char **retptr)
15 char *endptr; /* local pointer to end of parsed string */
17 unsigned long long ret = strtoll(ptr, &endptr, 0);
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;
49 if (retptr)
50 *retptr = endptr;
52 return ret;