diff options
| -rw-r--r-- | arch/riscv64/kernel/except.c | 15 | ||||
| -rw-r--r-- | include/arch/tcb.h | 4 |
2 files changed, 19 insertions, 0 deletions
diff --git a/arch/riscv64/kernel/except.c b/arch/riscv64/kernel/except.c index 2525716..5f182fd 100644 --- a/arch/riscv64/kernel/except.c +++ b/arch/riscv64/kernel/except.c @@ -1,9 +1,24 @@ +/* SPDX-License-Identifier: copyleft-next-0.3.1 */ +/* Copyright 2024, Kim Kuparinen < kimi.h.kuparinen@gmail.com > */ + +/** + * @file except.c + * riscv64 exception handling. + */ + #include <kmi/types.h> #include <kmi/panic.h> #include <kmi/debug.h> #include <kmi/vmem.h> #include <kmi/bkl.h> +/** + * Handle exception. Intended to be called from entry.S. + * + * @param pc Where exception occurred. + * @param addr What address caused the exception, if any. + * @param id ID of exception, see riscv spec. + */ void riscv_handle_exception(void *pc, void *addr, unsigned long id) { switch (id) { diff --git a/include/arch/tcb.h b/include/arch/tcb.h index 709a3db..b04dc56 100644 --- a/include/arch/tcb.h +++ b/include/arch/tcb.h @@ -125,6 +125,10 @@ void open_rpc(struct tcb *t, vm_t top); * ctx | user | user | < * ``` * + * @note \p top is (at least currently) not checked for legitimacy, it is + * assumed that \ref in_rpc_stack() has been checked beforehand. Should probably + * handle this better. + * * @param t tcb whose stack to grow. * @param top Address to grow to. */ |
