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