42 lines · 785 B · C
RawDownload
// SPDX-License-Identifier: GPL-2.0-only/* * stdlib functions * * Author: Scott Wood <scottwood@freescale.com> * * Copyright (c) 2007 Freescale Semiconductor, Inc. */ #include "stdlib.h" /* Not currently supported: leading whitespace, sign, 0x prefix, zero base */unsigned long long int strtoull(const char *ptr, char **end, int base){	unsigned long long ret = 0; 	if (base > 36)		goto out; 	while (*ptr) {		int digit; 		if (*ptr >= '0' && *ptr <= '9' && *ptr < '0' + base)			digit = *ptr - '0';		else if (*ptr >= 'A' && *ptr < 'A' + base - 10)			digit = *ptr - 'A' + 10;		else if (*ptr >= 'a' && *ptr < 'a' + base - 10)			digit = *ptr - 'a' + 10;		else			break; 		ret *= base;		ret += digit;		ptr++;	} out:	if (end)		*end = (char *)ptr; 	return ret;}