1 /**************************************************************************
3 **************************************************************************/
5 FILE_LICENCE ( GPL2_OR_LATER
);
11 #include <ipxe/timer.h>
13 unsigned int strtoul_charval ( unsigned int charval
) {
15 if ( charval
>= 'a' ) {
16 charval
= ( charval
- 'a' + 10 );
17 } else if ( charval
>= 'A' ) {
18 charval
= ( charval
- 'A' + 10 );
19 } else if ( charval
<= '9' ) {
20 charval
= ( charval
- '0' );
26 unsigned long strtoul ( const char *p
, char **endp
, int base
) {
27 unsigned long ret
= 0;
31 while ( isspace ( *p
) )
39 base
= strtoul_base ( &p
, base
);
42 charval
= strtoul_charval ( *p
);
43 if ( charval
>= ( unsigned int ) base
)
45 ret
= ( ( ret
* base
) + charval
);