summaryrefslogtreecommitdiff
path: root/arch/xtensa/include/asm/traps.h
diff options
context:
space:
mode:
authorMax Filippov <jcmvbkbc@gmail.com>2017-12-15 16:08:16 -0800
committerMax Filippov <jcmvbkbc@gmail.com>2017-12-16 22:37:09 -0800
commitf21a79cab3773bc17aa845b7738c7f200778a260 (patch)
tree810c2feba63b1e3839af00ee2af39d868b0d7cd8 /arch/xtensa/include/asm/traps.h
parentc130d3be84afb9b5a30ce4f715f88a1c1dcc4114 (diff)
xtensa: clean up exception handling structure
Instead of using flat array of longs use normal C structure and generate EXC_TABLE_* constants in the asm-offsets.c Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
Diffstat (limited to 'arch/xtensa/include/asm/traps.h')
-rw-r--r--arch/xtensa/include/asm/traps.h23
1 files changed, 23 insertions, 0 deletions
diff --git a/arch/xtensa/include/asm/traps.h b/arch/xtensa/include/asm/traps.h
index 2e69aa4b843f..5bd197097b77 100644
--- a/arch/xtensa/include/asm/traps.h
+++ b/arch/xtensa/include/asm/traps.h
@@ -13,6 +13,29 @@
#include <asm/ptrace.h>
/*
+ * Per-CPU exception handling data structure.
+ * EXCSAVE1 points to it.
+ */
+struct exc_table {
+ /* Kernel Stack */
+ void *kstk;
+ /* Double exception save area for a0 */
+ unsigned long double_save;
+ /* Fixup handler */
+ void *fixup;
+ /* For passing a parameter to fixup */
+ void *fixup_param;
+ /* For fast syscall handler */
+ unsigned long syscall_save;
+ /* Fast user exception handlers */
+ void *fast_user_handler[EXCCAUSE_N];
+ /* Fast kernel exception handlers */
+ void *fast_kernel_handler[EXCCAUSE_N];
+ /* Default C-Handlers */
+ void *default_handler[EXCCAUSE_N];
+};
+
+/*
* handler must be either of the following:
* void (*)(struct pt_regs *regs);
* void (*)(struct pt_regs *regs, unsigned long exccause);