blob: 1c081805b96226d2e6327e54612e7cdd5e1c4213 [file] [log] [blame]
David Brazdil0f672f62019-12-10 10:32:29 +00001/* 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
35extern void *vec_base[];
36
37#define VEC_INIT(i, func) \
38do { \
39 vec_base[i] = (void *)func; \
40} while (0)
41
42void csky_alignment(struct pt_regs *regs);
43
44#endif /* __ASM_CSKY_TRAPS_H */