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