From d1ff7bcc91886626dc9060ec5fb67ee102ab7c1d Mon Sep 17 00:00:00 2001 From: Jon Santmyer Date: Mon, 11 Mar 2024 21:30:31 -0400 Subject: usermode capable kernel with logging syscall --- usr/syscall.c | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 usr/syscall.c (limited to 'usr/syscall.c') diff --git a/usr/syscall.c b/usr/syscall.c new file mode 100644 index 0000000..0ea5700 --- /dev/null +++ b/usr/syscall.c @@ -0,0 +1,23 @@ +#include "syscall.h" +#include "mem/memory.h" +#include "io/log.h" + +int _syscall_handler_log(struct syscall_log *req) +{ + klogf("Message ptr %#016X\n", req->message); + if(!mem_check_ptr(req->message)) return -1; + klogf("%s", req->message); + return 0; +} + +void *_syscall_handlers[SYSCALL_COUNT] = { + _syscall_handler_log +}; + +int +syscall_handler(syscall_t *req) +{ + if(!mem_check_ptr(req)) return -1; + if(req->id >= SYSCALL_COUNT) return -1; + return ((syscall_handler_t)(_syscall_handlers[req->id]))(req); +} -- cgit v1.2.1