diff --git a/src/kernel/string.c b/src/kernel/string.c index 122aefd..55ac15f 100644 --- a/src/kernel/string.c +++ b/src/kernel/string.c @@ -18,6 +18,18 @@ char* itoa(uint32_t val, uint8_t base) { return &buf[i + 1]; } +uint32_t atoi(const char* str) { + uint32_t res = 0; + + // TODO: Add error checking + + while (*str >= '0' && *str <= '9') { + res = res * 10 + (*str++ - '0'); + } + + return res; +} + // Some implementations taken from https://en.wikibooks.org/wiki/C_Programming/String_manipulation char* strcat(char* str1, const char* str2) { char* s = str1; diff --git a/src/kernel/string.h b/src/kernel/string.h index 4a7e761..f6f700a 100644 --- a/src/kernel/string.h +++ b/src/kernel/string.h @@ -4,6 +4,7 @@ #include "stdint.h" char* itoa(uint32_t val, uint8_t base); +uint32_t atoi(const char* str); char* strcat(char* str1, const char* str2); char* strchr(const char* str, char c);