From bc600ecc3bdf0f189861dfb840f70c2339a7a853 Mon Sep 17 00:00:00 2001 From: Kimplul Date: Fri, 24 May 2024 13:24:27 +0300 Subject: rename common to src + I keep starting to type src and wondering why autocomplete won't work, I guess src is just uncounciously a better name --- src/dispatch.c | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 src/dispatch.c (limited to 'src/dispatch.c') diff --git a/src/dispatch.c b/src/dispatch.c new file mode 100644 index 0000000..2786678 --- /dev/null +++ b/src/dispatch.c @@ -0,0 +1,35 @@ +/* SPDX-License-Identifier: copyleft-next-0.3.1 */ +/* Copyright 2023 Kim Kuparinen < kimi.h.kuparinen@gmail.com > */ + +#include +#include + +/** + * @file dispatch.c + * + * Interface between assembly and C for dispatching syscalls/IPIs. + * In kmi, IPIs are a higher level concept and is not expected to be handled by + * the underlying architecture. Instead, we only require that there is some way + * to trigger an interrupt in some other core, and check if the interrupt was an + * IPI or syscall in C. + */ + +/** + * Syscall/IPI handler. + * If a syscall was triggered, parameters have the meaning they are given. + * Otherwise, they are meaningless and unused. + * + * @param a Syscall number. + * @param b Argument 0. + * @param c Argument 1. + * @param d Argument 2. + * @param e Argument 3. + * @param f Argument 4. + * + * Returns value of taken action. + */ +void dispatch(sys_arg_t a, sys_arg_t b, sys_arg_t c, + sys_arg_t d, sys_arg_t e, sys_arg_t f) +{ + handle_syscall(a, b, c, d, e, f, cur_tcb()); +} -- cgit v1.3