diff options
Diffstat (limited to 'arch/riscv64/kernel/except.c')
| -rw-r--r-- | arch/riscv64/kernel/except.c | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/arch/riscv64/kernel/except.c b/arch/riscv64/kernel/except.c new file mode 100644 index 0000000..e46b584 --- /dev/null +++ b/arch/riscv64/kernel/except.c @@ -0,0 +1,21 @@ +#include <kmi/types.h> +#include <kmi/panic.h> +#include <kmi/vmem.h> +#include <kmi/bkl.h> + +void riscv_handle_exception(void *pc, void *addr, unsigned long id) +{ + switch (id) { + case 12: + case 13: + case 15: { + bkl_lock(); + handle_pagefault((vm_t)addr); + bkl_unlock(); + break; + } + + default: + unhandled_panic(pc, addr, id); + } +} |
