From 6d22b0dfc7761a605758552d5824f8039ac5a00f Mon Sep 17 00:00:00 2001 From: Josh Rahm Date: Wed, 25 Nov 2020 15:47:02 -0700 Subject: Primitive ability to call kernel code from userspace. --- src/user/syscall.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 src/user/syscall.c (limited to 'src/user/syscall.c') diff --git a/src/user/syscall.c b/src/user/syscall.c new file mode 100644 index 0000000..3aa0707 --- /dev/null +++ b/src/user/syscall.c @@ -0,0 +1,17 @@ +#include "user/syscall.h" + +#include + +void __attribute__ ((noinline)) do_syscall( + volatile uint32_t id, + volatile uint32_t arg) +{ + asm volatile("svc #0x04"); +} + +#define SYSCALL(id, fn, kernfn, argt) \ + void fn(argt arg) \ +{ \ + do_syscall(id, (uint32_t) arg); \ +} +#include "kern/syscall/syscall_tbl.inc" -- cgit