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