Loading...
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
34extern void *vec_base[];
35
36#define VEC_INIT(i, func) \
37do { \
38 vec_base[i] = (void *)func; \
39} while (0)
40
41void csky_alignment(struct pt_regs *regs);
42
43#endif /* __ASM_CSKY_TRAPS_H */
1/* SPDX-License-Identifier: GPL-2.0 */
2
3#ifndef __ASM_CSKY_TRAPS_H
4#define __ASM_CSKY_TRAPS_H
5
6#include <linux/linkage.h>
7
8#define VEC_RESET 0
9#define VEC_ALIGN 1
10#define VEC_ACCESS 2
11#define VEC_ZERODIV 3
12#define VEC_ILLEGAL 4
13#define VEC_PRIV 5
14#define VEC_TRACE 6
15#define VEC_BREAKPOINT 7
16#define VEC_UNRECOVER 8
17#define VEC_SOFTRESET 9
18#define VEC_AUTOVEC 10
19#define VEC_FAUTOVEC 11
20#define VEC_HWACCEL 12
21
22#define VEC_TLBMISS 14
23#define VEC_TLBMODIFIED 15
24
25#define VEC_TRAP0 16
26#define VEC_TRAP1 17
27#define VEC_TRAP2 18
28#define VEC_TRAP3 19
29
30#define VEC_TLBINVALIDL 20
31#define VEC_TLBINVALIDS 21
32
33#define VEC_PRFL 29
34#define VEC_FPE 30
35
36extern void *vec_base[];
37
38#define VEC_INIT(i, func) \
39do { \
40 vec_base[i] = (void *)func; \
41} while (0)
42
43void csky_alignment(struct pt_regs *regs);
44
45asmlinkage void do_trap_unknown(struct pt_regs *regs);
46asmlinkage void do_trap_zdiv(struct pt_regs *regs);
47asmlinkage void do_trap_buserr(struct pt_regs *regs);
48asmlinkage void do_trap_misaligned(struct pt_regs *regs);
49asmlinkage void do_trap_bkpt(struct pt_regs *regs);
50asmlinkage void do_trap_illinsn(struct pt_regs *regs);
51asmlinkage void do_trap_fpe(struct pt_regs *regs);
52asmlinkage void do_trap_priv(struct pt_regs *regs);
53asmlinkage void trap_c(struct pt_regs *regs);
54
55asmlinkage void do_notify_resume(struct pt_regs *regs,
56 unsigned long thread_info_flags);
57
58asmlinkage void do_page_fault(struct pt_regs *regs);
59
60#endif /* __ASM_CSKY_TRAPS_H */