| /* SPDX-License-Identifier: GPL-2.0 */ |
| |
| #ifndef __ASM_CSKY_TRAPS_H |
| #define __ASM_CSKY_TRAPS_H |
| |
| #include <linux/linkage.h> |
| |
| #define VEC_RESET 0 |
| #define VEC_ALIGN 1 |
| #define VEC_ACCESS 2 |
| #define VEC_ZERODIV 3 |
| #define VEC_ILLEGAL 4 |
| #define VEC_PRIV 5 |
| #define VEC_TRACE 6 |
| #define VEC_BREAKPOINT 7 |
| #define VEC_UNRECOVER 8 |
| #define VEC_SOFTRESET 9 |
| #define VEC_AUTOVEC 10 |
| #define VEC_FAUTOVEC 11 |
| #define VEC_HWACCEL 12 |
| |
| #define VEC_TLBMISS 14 |
| #define VEC_TLBMODIFIED 15 |
| |
| #define VEC_TRAP0 16 |
| #define VEC_TRAP1 17 |
| #define VEC_TRAP2 18 |
| #define VEC_TRAP3 19 |
| |
| #define VEC_TLBINVALIDL 20 |
| #define VEC_TLBINVALIDS 21 |
| |
| #define VEC_PRFL 29 |
| #define VEC_FPE 30 |
| |
| extern void *vec_base[]; |
| |
| #define VEC_INIT(i, func) \ |
| do { \ |
| vec_base[i] = (void *)func; \ |
| } while (0) |
| |
| void csky_alignment(struct pt_regs *regs); |
| |
| asmlinkage void do_trap_unknown(struct pt_regs *regs); |
| asmlinkage void do_trap_zdiv(struct pt_regs *regs); |
| asmlinkage void do_trap_buserr(struct pt_regs *regs); |
| asmlinkage void do_trap_misaligned(struct pt_regs *regs); |
| asmlinkage void do_trap_bkpt(struct pt_regs *regs); |
| asmlinkage void do_trap_illinsn(struct pt_regs *regs); |
| asmlinkage void do_trap_fpe(struct pt_regs *regs); |
| asmlinkage void do_trap_priv(struct pt_regs *regs); |
| asmlinkage void trap_c(struct pt_regs *regs); |
| |
| asmlinkage void do_notify_resume(struct pt_regs *regs, |
| unsigned long thread_info_flags); |
| |
| asmlinkage void do_page_fault(struct pt_regs *regs); |
| |
| #endif /* __ASM_CSKY_TRAPS_H */ |