diff options
author | Jeff Johnston <jjohnstn@redhat.com> | 2014-12-15 20:17:39 +0000 |
---|---|---|
committer | Jeff Johnston <jjohnstn@redhat.com> | 2014-12-15 20:17:39 +0000 |
commit | 68a910123726e7868baf89cac9038b4dbb22f612 (patch) | |
tree | 108b63e655003a7d58a3cc6f252ab2e6ace706d1 /libgloss/or1k/exceptions.c | |
parent | d1219c0e89d2dc4ac865889cbd23f5e4c64d86e5 (diff) | |
download | cygnal-68a910123726e7868baf89cac9038b4dbb22f612.tar.gz cygnal-68a910123726e7868baf89cac9038b4dbb22f612.tar.bz2 cygnal-68a910123726e7868baf89cac9038b4dbb22f612.zip |
2014-12-15 Stefan Wallentowitz <stefan.wallentowitz@tum.de>
* 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
Diffstat (limited to 'libgloss/or1k/exceptions.c')
-rw-r--r-- | libgloss/or1k/exceptions.c | 21 |
1 files changed, 21 insertions, 0 deletions
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 +} |