53 lines · 875 B · C
RawDownload
// SPDX-License-Identifier: GPL-2.0-only/* * From lib/cmdline.c */#include <stdlib.h> #if __has_attribute(__fallthrough__)# define fallthrough                    __attribute__((__fallthrough__))#else# define fallthrough                    do {} while (0)  /* fallthrough */#endif unsigned long long memparse(const char *ptr, char **retptr){	char *endptr;	/* local pointer to end of parsed string */ 	unsigned long long ret = strtoll(ptr, &endptr, 0); 	switch (*endptr) {	case 'E':	case 'e':		ret <<= 10;		fallthrough;	case 'P':	case 'p':		ret <<= 10;		fallthrough;	case 'T':	case 't':		ret <<= 10;		fallthrough;	case 'G':	case 'g':		ret <<= 10;		fallthrough;	case 'M':	case 'm':		ret <<= 10;		fallthrough;	case 'K':	case 'k':		ret <<= 10;		endptr++;		fallthrough;	default:		break;	} 	if (retptr)		*retptr = endptr; 	return ret;}