From 0e131b226336808c135795f5b9d7defc5a58b2ae Mon Sep 17 00:00:00 2001 From: Robert Morris Date: Tue, 4 Jun 2019 10:43:45 -0400 Subject: fix a problem with end. make uartputc() wait until h/w is ready. --- riscv.h | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'riscv.h') diff --git a/riscv.h b/riscv.h index 6ecee84..d59503c 100644 --- a/riscv.h +++ b/riscv.h @@ -132,6 +132,14 @@ w_stvec(uint64 x) asm("csrw stvec, %0" : : "r" (x)); } +static inline uint64 +r_stvec() +{ + uint64 x; + asm("csrr %0, stvec" : "=r" (x) ); + return x; +} + // use riscv's sv39 page table scheme. #define SATP_SV39 (8L << 60) @@ -201,6 +209,14 @@ intr_get() return (x & SSTATUS_SIE) != 0; } +static inline uint64 +r_sp() +{ + uint64 x; + asm("mv %0, sp" : "=r" (x) ); + return x; +} + #define PGSIZE 4096 // bytes per page #define PGSHIFT 12 // bits of offset within a page -- cgit v1.2.3