From 7967a9ab13214543041e4408086668b4db8d3e62 Mon Sep 17 00:00:00 2001 From: Kimplul Date: Mon, 18 Apr 2022 21:10:57 +0300 Subject: start working on timer subsys --- common/uapi/dispatch.c | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 common/uapi/dispatch.c (limited to 'common/uapi/dispatch.c') diff --git a/common/uapi/dispatch.c b/common/uapi/dispatch.c new file mode 100644 index 0000000..3b03c43 --- /dev/null +++ b/common/uapi/dispatch.c @@ -0,0 +1,38 @@ +#include + +static const sys_t syscall_table[] = { + /* mem */ + [SYS_REQ_MEM] = sys_req_mem, + [SYS_REQ_PMEM] = sys_req_pmem, + [SYS_REQ_FIXMEM] = sys_req_fixmem, + [SYS_FREE_MEM] = sys_free_mem, + + /* timers */ + [SYS_REQ_TIMER] = sys_req_timer, + [SYS_FREE_TIMER] = sys_free_timer, + + /* ipc */ + [SYS_IPC_SERVER] = sys_ipc_server, + [SYS_IPC_REQ] = sys_ipc_req, + [SYS_IPC_RESP] = sys_ipc_resp, + + /* proc */ + [SYS_FORK] = sys_fork, + [SYS_EXEC] = sys_exec, + [SYS_SIGNAL] = sys_signal, + [SYS_SWITCH] = sys_switch, + [SYS_SYNC] = sys_sync, + + /* conf */ + [SYS_CONF] = sys_conf, + [SYS_POWEROFF] = sys_poweroff, +}; + +vm_t syscall_dispatch(vm_t syscall, vm_t a, vm_t b, vm_t c, vm_t d) +{ + sys_t call = syscall_table[syscall]; + if (!call) + return ERR_INVAL; + + return call(a, b, c, d); +} -- cgit v1.3