From 66c77c2dc9b16d3b3522697ea04009aad1c8ba79 Mon Sep 17 00:00:00 2001 From: Julius Werner Date: Mon, 13 May 2019 17:45:27 -0700 Subject: console: Move poor-man's atoi() into string.h vtxprintf.c seems to have been written before string.h was as fleshed out as it is today -- this patch removes some custom implementation of stuff we now have globally. It also makes the skip_atoi() function globally available, because I need it somewhere else, and while we maybe don't want a huge fully-featured string parsing library in coreboot, being able to parse an integer is occasionally useful. Change-Id: Iecb2b970aecfc768540d2bf8b3023445f54853a4 Signed-off-by: Julius Werner Reviewed-on: https://review.coreboot.org/c/coreboot/+/32858 Tested-by: build bot (Jenkins) Reviewed-by: Alex Thiessen --- src/include/string.h | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'src/include') diff --git a/src/include/string.h b/src/include/string.h index 4a2f5e9ee6..c56a760a04 100644 --- a/src/include/string.h +++ b/src/include/string.h @@ -178,4 +178,19 @@ static inline int tolower(int c) c -= 'A'-'a'; return c; } + +/* + * Parses an unsigned integer and moves the input pointer forward to the first + * character that's not a valid digit. s and *s must not be NULL. Result + * undefined if it overruns the return type size. + */ +static inline unsigned int skip_atoi(char **s) +{ + unsigned int i = 0; + + while (isdigit(**s)) + i = i*10 + *((*s)++) - '0'; + return i; +} + #endif /* STRING_H */ -- cgit v1.2.3