Something went wrong. Try again.
Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
Something went wrong. Try again.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354// 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;}