From 68a910123726e7868baf89cac9038b4dbb22f612 Mon Sep 17 00:00:00 2001 From: Jeff Johnston Date: Mon, 15 Dec 2014 20:17:39 +0000 Subject: 2014-12-15 Stefan Wallentowitz * or1k/Makefile.in: Add libor1k * or1k/README: New file * or1k/caches-asm.S: New file * or1k/exceptions-asm.S: New file * or1k/exceptions.c: New file * or1k/impure.c: New file * or1k/include/or1k-nop.h: New file * or1k/include/or1k-support.h: New file * or1k/interrupts-asm.S: New file * or1k/interrupts.c: New file * or1k/mmu-asm.S: New file * or1k/or1k-internals.h: New file * or1k/or1k_uart.c: New file * or1k/or1k_uart.h: New file * or1k/outbyte.S: New file * or1k/sbrk.c: New file * or1k/sync-asm.S: New file * or1k/syscalls.c: New file * or1k/timer.c: New file * or1k/util.c: New file --- libgloss/or1k/exceptions.c | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 libgloss/or1k/exceptions.c (limited to 'libgloss/or1k/exceptions.c') diff --git a/libgloss/or1k/exceptions.c b/libgloss/or1k/exceptions.c new file mode 100644 index 000000000..8240d09d2 --- /dev/null +++ b/libgloss/or1k/exceptions.c @@ -0,0 +1,21 @@ +#include "include/or1k-support.h" + +#include "or1k-internals.h" + +#ifdef __OR1K_MULTICORE__ +or1k_exception_handler_table_t *_or1k_exception_handler_table; +#else +or1k_exception_handler_table_t _or1k_exception_handler_table; +#endif + +void or1k_exception_handler_add(int id, or1k_exception_handler_fptr handler) +{ + // Subtract 2 as we do not have a vector at 0 and reset is static + id = id - 2; +#ifdef __OR1K_MULTICORE__ + _or1k_exception_handler_table[or1k_coreid()][id] = handler; + +#else + _or1k_exception_handler_table[id] = handler; +#endif +} -- cgit v1.2.3