From 402793033200c9f728fe022d4c57fc19b1df2937 Mon Sep 17 00:00:00 2001 From: Andrew Waterman Date: Tue, 25 Oct 2016 17:05:34 -0700 Subject: rv32 putstring fix --- machine/mtrap.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/machine/mtrap.c b/machine/mtrap.c index a68c0d9..00fdcc7 100644 --- a/machine/mtrap.c +++ b/machine/mtrap.c @@ -3,6 +3,8 @@ #include "htif.h" #include "atomic.h" #include "bits.h" +#include "syscall.h" +#include #include #include #include @@ -89,8 +91,13 @@ void poweroff() void putstring(const char* s) { - while (*s) - mcall_console_putchar(*s++); + volatile uint64_t magic_mem[8] __attribute__((aligned(64))); + magic_mem[0] = SYS_write; + magic_mem[1] = 1; + magic_mem[2] = (uintptr_t)s; + magic_mem[3] = strlen(s); + + mcall_htif_syscall((uintptr_t)magic_mem); } void printm(const char* s, ...) -- cgit v1.1