add: %u, %p, %x to kprintf

This commit is contained in:
2024-09-19 18:00:18 +02:00
parent 4cc1dba5f9
commit 96179d996d
4 changed files with 46 additions and 20 deletions

View File

@ -0,0 +1,28 @@
#include <stdint.h>
#include "string.h"
#include "terminal.h"
int print_int_base(int32_t number, const char *prefix, const char *base)
{
const int base_size = strlen(base);
uint64_t div = 1;
uint32_t tmp;
int rv = 0;
if (prefix)
terminal_writestring(prefix);
if (number < 0) {
rv += terminal_putchar('-');
tmp = -1 * number;
} else {
tmp = number;
}
while (div <= tmp / base_size)
div *= base_size;
while (div > 0) {
rv += terminal_putchar(base[tmp / div % base_size]);
div /= base_size;
}
return rv;
}