Changes to RISC-V supervisor mode
[akaros.git] / kern / arch / riscv / riscv.h
index a4964c2..7be96e8 100644 (file)
@@ -6,27 +6,33 @@
 static __inline void
 lcr3(uintptr_t val)
 {
-  mtpcr(PCR_PTBR, val);
+       mtpcr(PCR_PTBR, val);
 }
 
 static __inline uintptr_t
 rcr3(void)
 {
-  return mfpcr(PCR_PTBR);
+       return mfpcr(PCR_PTBR);
 }
 
 static __inline uintptr_t
 read_pc(void)
 {
-  uintptr_t pc;
+       uintptr_t pc;
        asm ("rdnpc %0" : "=r"(pc));
-  return pc;
+       return pc;
 }
 
 static __inline void
 send_ipi(uint32_t who)
 {
-  mtpcr(PCR_IPI, who);
+       mtpcr(PCR_SEND_IPI, who);
+}
+
+static __inline void
+clear_ipi()
+{
+       mtpcr(PCR_CLR_IPI, 0);
 }
 
 #endif