1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0 */ 2*4882a593Smuzhiyun // Copyright (C) 2018 Hangzhou C-SKY Microsystems co.,ltd. 3*4882a593Smuzhiyun 4*4882a593Smuzhiyun #ifndef __ASM_CSKY_TRAPS_H 5*4882a593Smuzhiyun #define __ASM_CSKY_TRAPS_H 6*4882a593Smuzhiyun 7*4882a593Smuzhiyun #define VEC_RESET 0 8*4882a593Smuzhiyun #define VEC_ALIGN 1 9*4882a593Smuzhiyun #define VEC_ACCESS 2 10*4882a593Smuzhiyun #define VEC_ZERODIV 3 11*4882a593Smuzhiyun #define VEC_ILLEGAL 4 12*4882a593Smuzhiyun #define VEC_PRIV 5 13*4882a593Smuzhiyun #define VEC_TRACE 6 14*4882a593Smuzhiyun #define VEC_BREAKPOINT 7 15*4882a593Smuzhiyun #define VEC_UNRECOVER 8 16*4882a593Smuzhiyun #define VEC_SOFTRESET 9 17*4882a593Smuzhiyun #define VEC_AUTOVEC 10 18*4882a593Smuzhiyun #define VEC_FAUTOVEC 11 19*4882a593Smuzhiyun #define VEC_HWACCEL 12 20*4882a593Smuzhiyun 21*4882a593Smuzhiyun #define VEC_TLBMISS 14 22*4882a593Smuzhiyun #define VEC_TLBMODIFIED 15 23*4882a593Smuzhiyun 24*4882a593Smuzhiyun #define VEC_TRAP0 16 25*4882a593Smuzhiyun #define VEC_TRAP1 17 26*4882a593Smuzhiyun #define VEC_TRAP2 18 27*4882a593Smuzhiyun #define VEC_TRAP3 19 28*4882a593Smuzhiyun 29*4882a593Smuzhiyun #define VEC_TLBINVALIDL 20 30*4882a593Smuzhiyun #define VEC_TLBINVALIDS 21 31*4882a593Smuzhiyun 32*4882a593Smuzhiyun #define VEC_PRFL 29 33*4882a593Smuzhiyun #define VEC_FPE 30 34*4882a593Smuzhiyun 35*4882a593Smuzhiyun extern void *vec_base[]; 36*4882a593Smuzhiyun 37*4882a593Smuzhiyun #define VEC_INIT(i, func) \ 38*4882a593Smuzhiyun do { \ 39*4882a593Smuzhiyun vec_base[i] = (void *)func; \ 40*4882a593Smuzhiyun } while (0) 41*4882a593Smuzhiyun 42*4882a593Smuzhiyun void csky_alignment(struct pt_regs *regs); 43*4882a593Smuzhiyun 44*4882a593Smuzhiyun #endif /* __ASM_CSKY_TRAPS_H */ 45