From 076f58c4bf9fa1ae0faa65a731523cb531705974 Mon Sep 17 00:00:00 2001 From: Michael Brown Date: Fri, 12 Jul 2013 14:44:20 +0200 Subject: [base16] Generalise base16_decode() to hex_decode() Provide a generic hex_decode() routine which can be shared between the Base16 code and the "hex" and "hexhyp" settings parsers. Signed-off-by: Michael Brown --- src/include/ipxe/base16.h | 2 ++ src/include/stdlib.h | 14 +------------- 2 files changed, 3 insertions(+), 13 deletions(-) (limited to 'src/include') diff --git a/src/include/ipxe/base16.h b/src/include/ipxe/base16.h index f0c9842f9..60e3f2315 100644 --- a/src/include/ipxe/base16.h +++ b/src/include/ipxe/base16.h @@ -33,6 +33,8 @@ static inline size_t base16_decoded_max_len ( const char *encoded ) { } extern void base16_encode ( const uint8_t *raw, size_t len, char *encoded ); +extern int hex_decode ( const char *string, char separator, void *data, + size_t len ); extern int base16_decode ( const char *encoded, uint8_t *raw ); #endif /* _IPXE_BASE16_H */ diff --git a/src/include/stdlib.h b/src/include/stdlib.h index 3d30858ff..bca85a234 100644 --- a/src/include/stdlib.h +++ b/src/include/stdlib.h @@ -34,19 +34,7 @@ static inline int strtoul_base ( const char **pp, int base ) return base; } -static inline unsigned int strtoul_charval ( unsigned int charval ) -{ - if ( charval >= 'a' ) { - charval = ( charval - 'a' + 10 ); - } else if ( charval >= 'A' ) { - charval = ( charval - 'A' + 10 ); - } else if ( charval <= '9' ) { - charval = ( charval - '0' ); - } - - return charval; -} - +extern unsigned int strtoul_charval ( unsigned int charval ); extern unsigned long strtoul ( const char *p, char **endp, int base ); extern unsigned long long strtoull ( const char *p, char **endp, int base ); -- cgit v1.2.3-55-g7522