diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/debug.c | 38 | ||||
| -rw-r--r-- | src/main.c | 3 |
2 files changed, 18 insertions, 23 deletions
diff --git a/src/debug.c b/src/debug.c index fcec537..15640b4 100644 --- a/src/debug.c +++ b/src/debug.c @@ -364,6 +364,16 @@ static size_t __integral_val(ssize_t value, size_t base, size_t flags, return ret + 1; } +static size_t __puts(const char *s) +{ + size_t i = 0; + while (s[i]) { + __putchar(s[i++]); + } + + return i; +} + /** * Print prefix corresponding to \c base. * @@ -372,28 +382,14 @@ static size_t __integral_val(ssize_t value, size_t base, size_t flags, */ static size_t __print_prefix(size_t base) { - size_t i = 0; - - const char *hex = "0x"; - const char *oct = "0"; - const char *bin = "0b"; - const char *empty = ""; - - const char *prefix; - - if (base == 16) - prefix = hex; - else if (base == 8) - prefix = oct; - else if (base == 2) - prefix = bin; - else - prefix = empty; - - for (; *prefix; ++i) - __putchar(*prefix++); + switch (base) { + case 16: return __puts("0x"); + case 8: return __puts("0"); + case 2: return __puts("0b"); + default: + } - return i; + return 0; } /** @@ -66,7 +66,7 @@ __noreturn void kernel(void *fdt, uintptr_t load_addr, struct vmem *d) /* start up debugging in kernel IO */ setup_io_dbg(d); - //dbg_fdt(fdt); + dbg_fdt(fdt); setup_arch(fdt); @@ -106,7 +106,6 @@ __noreturn void main(unsigned long hart, void *fdt, uintptr_t load_addr) (void)hart; /** @todo some kind of lottery? */ - pm_t ram_base = __fdt_ram_base(fdt); pm_t ram_size = __fdt_ram_size(fdt); set_ram_base(ram_base); |
