mirror of
https://github.com/ipxe/ipxe
synced 2025-12-23 13:30:57 +03:00
[libc] Rewrite strtoul()
The implementation of strtoul() has a partially unknown provenance. Rewrite this code to avoid potential licensing uncertainty. Since we now use -ffunction-sections, there is no need to place strtoull() in a separate file from strtoul(). Signed-off-by: Michael Brown <mcb30@ipxe.org>
This commit is contained in:
@@ -13,31 +13,9 @@ FILE_LICENCE ( GPL2_OR_LATER );
|
||||
****************************************************************************
|
||||
*/
|
||||
|
||||
static inline int strtoul_base ( const char **pp, int base )
|
||||
{
|
||||
const char *p = *pp;
|
||||
|
||||
if ( base == 0 ) {
|
||||
base = 10;
|
||||
if ( *p == '0' ) {
|
||||
p++;
|
||||
base = 8;
|
||||
if ( ( *p | 0x20 ) == 'x' ) {
|
||||
p++;
|
||||
base = 16;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
*pp = p;
|
||||
|
||||
return base;
|
||||
}
|
||||
|
||||
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 );
|
||||
|
||||
extern unsigned long strtoul ( const char *string, char **endp, int base );
|
||||
extern unsigned long long strtoull ( const char *string, char **endp,
|
||||
int base );
|
||||
|
||||
/*****************************************************************************
|
||||
*
|
||||
|
||||
Reference in New Issue
Block a user