1081860b9SGuo Ren /* SPDX-License-Identifier: GPL-2.0 */ 2081860b9SGuo Ren 3081860b9SGuo Ren #ifndef __ASM_CSKY_TRAPS_H 4081860b9SGuo Ren #define __ASM_CSKY_TRAPS_H 5081860b9SGuo Ren 65195c35aSGuo Ren #include <linux/linkage.h> 75195c35aSGuo Ren 8081860b9SGuo Ren #define VEC_RESET 0 9081860b9SGuo Ren #define VEC_ALIGN 1 10081860b9SGuo Ren #define VEC_ACCESS 2 11081860b9SGuo Ren #define VEC_ZERODIV 3 12081860b9SGuo Ren #define VEC_ILLEGAL 4 13081860b9SGuo Ren #define VEC_PRIV 5 14081860b9SGuo Ren #define VEC_TRACE 6 15081860b9SGuo Ren #define VEC_BREAKPOINT 7 16081860b9SGuo Ren #define VEC_UNRECOVER 8 17081860b9SGuo Ren #define VEC_SOFTRESET 9 18081860b9SGuo Ren #define VEC_AUTOVEC 10 19081860b9SGuo Ren #define VEC_FAUTOVEC 11 20081860b9SGuo Ren #define VEC_HWACCEL 12 21081860b9SGuo Ren 22081860b9SGuo Ren #define VEC_TLBMISS 14 23081860b9SGuo Ren #define VEC_TLBMODIFIED 15 24081860b9SGuo Ren 25081860b9SGuo Ren #define VEC_TRAP0 16 26081860b9SGuo Ren #define VEC_TRAP1 17 27081860b9SGuo Ren #define VEC_TRAP2 18 28081860b9SGuo Ren #define VEC_TRAP3 19 29081860b9SGuo Ren 30081860b9SGuo Ren #define VEC_TLBINVALIDL 20 31081860b9SGuo Ren #define VEC_TLBINVALIDS 21 32081860b9SGuo Ren 33081860b9SGuo Ren #define VEC_PRFL 29 34081860b9SGuo Ren #define VEC_FPE 30 35081860b9SGuo Ren 36081860b9SGuo Ren extern void *vec_base[]; 37081860b9SGuo Ren 38081860b9SGuo Ren #define VEC_INIT(i, func) \ 39081860b9SGuo Ren do { \ 40081860b9SGuo Ren vec_base[i] = (void *)func; \ 41081860b9SGuo Ren } while (0) 42081860b9SGuo Ren 43081860b9SGuo Ren void csky_alignment(struct pt_regs *regs); 44081860b9SGuo Ren 45c8171a86SGuo Ren asmlinkage void do_trap_unknown(struct pt_regs *regs); 46c8171a86SGuo Ren asmlinkage void do_trap_zdiv(struct pt_regs *regs); 47c8171a86SGuo Ren asmlinkage void do_trap_buserr(struct pt_regs *regs); 48c8171a86SGuo Ren asmlinkage void do_trap_misaligned(struct pt_regs *regs); 49c8171a86SGuo Ren asmlinkage void do_trap_bkpt(struct pt_regs *regs); 50c8171a86SGuo Ren asmlinkage void do_trap_illinsn(struct pt_regs *regs); 51c8171a86SGuo Ren asmlinkage void do_trap_fpe(struct pt_regs *regs); 52c8171a86SGuo Ren asmlinkage void do_trap_priv(struct pt_regs *regs); 53c8171a86SGuo Ren asmlinkage void trap_c(struct pt_regs *regs); 54c8171a86SGuo Ren 55c8171a86SGuo Ren asmlinkage void do_notify_resume(struct pt_regs *regs, 56c8171a86SGuo Ren unsigned long thread_info_flags); 57c8171a86SGuo Ren 58*23f8c182SArnd Bergmann asmlinkage void do_page_fault(struct pt_regs *regs); 59*23f8c182SArnd Bergmann 60081860b9SGuo Ren #endif /* __ASM_CSKY_TRAPS_H */ 61