From 9966b49db468de0168c7a455dfb5b4c66c413c4d Mon Sep 17 00:00:00 2001 From: Kimplul Date: Sun, 19 Dec 2021 17:10:36 +0200 Subject: Massive changes to jump to userspace --- arch/riscv/kernel/proc.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 arch/riscv/kernel/proc.c (limited to 'arch/riscv/kernel/proc.c') diff --git a/arch/riscv/kernel/proc.c b/arch/riscv/kernel/proc.c new file mode 100644 index 0000000..3a39dd3 --- /dev/null +++ b/arch/riscv/kernel/proc.c @@ -0,0 +1,15 @@ +#include +#include +#include + +void jump_to_userspace(struct tcb *t, char **argv, int argc) +{ + csr_write(CSR_SEPC, bin_entry(t->bin)); + __asm__("mv sp, %0\n" : "=r" (t->stack) :: "memory"); + __asm__("sret\n" ::: "memory"); +} + +void return_to_userspace(struct tcb *t) +{ + /* lol */ +} -- cgit v1.3