diff options
| author | Michael Brown | 2013-07-12 14:44:20 +0200 |
|---|---|---|
| committer | Michael Brown | 2013-07-12 15:14:36 +0200 |
| commit | 076f58c4bf9fa1ae0faa65a731523cb531705974 (patch) | |
| tree | abe42a7625ab2fc15a572e4e6959310a2b0c9ce3 /src/include | |
| parent | [test] Add self-tests for base16 (diff) | |
| download | ipxe-076f58c4bf9fa1ae0faa65a731523cb531705974.tar.gz ipxe-076f58c4bf9fa1ae0faa65a731523cb531705974.tar.xz ipxe-076f58c4bf9fa1ae0faa65a731523cb531705974.zip | |
[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 <mcb30@ipxe.org>
Diffstat (limited to 'src/include')
| -rw-r--r-- | src/include/ipxe/base16.h | 2 | ||||
| -rw-r--r-- | src/include/stdlib.h | 14 |
2 files changed, 3 insertions, 13 deletions
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 ); |
