summaryrefslogtreecommitdiff
path: root/kernel/src/libk/string.c
diff options
context:
space:
mode:
authorAleksa Vuckovic <aleksav013@gmail.com>2022-08-09 09:05:02 +0200
committerAleksa Vuckovic <aleksav013@gmail.com>2022-08-09 09:05:02 +0200
commit78579419442f22641368db777120d7e75cbaee94 (patch)
treecd49284e7fe0a4c1e8057fce6e2aa66a07f12fee /kernel/src/libk/string.c
parente11298e56be560de64bbccfe74fef7ff85c623d1 (diff)
map on page fault
Diffstat (limited to 'kernel/src/libk/string.c')
-rw-r--r--kernel/src/libk/string.c29
1 files changed, 27 insertions, 2 deletions
diff --git a/kernel/src/libk/string.c b/kernel/src/libk/string.c
index fde9645..6d7ab69 100644
--- a/kernel/src/libk/string.c
+++ b/kernel/src/libk/string.c
@@ -35,9 +35,34 @@ void strrev(char *s)
void itos(uint64_t num, char* s)
{
+ if (num == 0) {
+ s[0] = '0';
+ s[1] = '\0';
+ return;
+ }
+
+ size_t i;
+ for (i = 0; num; num /= 10, i++) {
+ s[i] = (char)('0' + num % 10);
+ }
+ s[i] = '\0';
+ strrev(s);
+}
+
+void itoh(uint64_t num, char* s)
+{
+ if (num == 0) {
+ s[0] = '0';
+ s[1] = '\0';
+ return;
+ }
+
size_t i;
- for (i = 0; num; num/=10, i++) {
- s[i] = (char)('0' + num%10);
+ for (i = 0; num; num /= 16, i++) {
+ if (num % 16 < 10)
+ s[i] = (char)('0' + num % 16);
+ else
+ s[i] = (char)('A' + num % 16 - 10);
}
s[i] = '\0';
strrev(s);