blob: 5cafdc69e6b5ba575cca6dbb8475b905d19f4def (
plain) (
tree)
|
|
#include "handler.h"
#include "print.h"
#include "umode_vma.h"
#include "api/errno.h"
static void *s_handlers[] = {
(void*)_handler_dbg_log,
(void*)_handler_exit
};
static size_t s_handlers_size = sizeof(s_handlers);
int
_syscall_handler(void *data)
{
uintmax_t req_id = 0;
if(user_vma_read(&req_id, data, sizeof(uintmax_t)) != 0)
return -EFAIL;
if(req_id >= s_handlers_size) return -1;
int (*handle)(void*) = (int (*)(void*))s_handlers[req_id];
kdbgf("syscall id %i handle %p\n", req_id, handle);
return handle(data);
}
|