return 0;
}
-static void tohost_exit(int code)
+void tohost_exit(long code)
{
write_csr(tohost, (code << 1) | 1);
while (1);
}
-long handle_trap(long cause, long epc, long regs[32])
+long handle_trap(long cause, long epc, long long regs[32])
{
int* csr_insn;
asm ("jal %0, 1f; csrr a0, stats; 1:" : "=r"(csr_insn));
if (cause == CAUSE_ILLEGAL_INSTRUCTION &&
(*(int*)epc & *csr_insn) == *csr_insn)
;
- else if (cause != CAUSE_SCALL)
+ else if (cause != CAUSE_ECALL)
tohost_exit(1337);
else if (regs[17] == SYS_exit)
tohost_exit(regs[10]);