Linux-libre 5.3.12-gnu
[librecmc/linux-libre.git] / arch / sh / include / asm / traps_64.h
1 /* SPDX-License-Identifier: GPL-2.0
2  *
3  * Copyright (C) 2000, 2001  Paolo Alberelli
4  * Copyright (C) 2003  Paul Mundt
5  * Copyright (C) 2004  Richard Curnow
6  */
7 #ifndef __ASM_SH_TRAPS_64_H
8 #define __ASM_SH_TRAPS_64_H
9
10 #include <cpu/registers.h>
11
12 extern void phys_stext(void);
13
14 #define lookup_exception_vector()               \
15 ({                                              \
16         unsigned long _vec;                     \
17                                                 \
18         __asm__ __volatile__ (                  \
19                 "getcon " __EXPEVT ", %0\n\t"   \
20                 : "=r" (_vec)                   \
21         );                                      \
22                                                 \
23         _vec;                                   \
24 })
25
26 static inline void trigger_address_error(void)
27 {
28         phys_stext();
29 }
30
31 #define BUILD_TRAP_HANDLER(name)        \
32 asmlinkage void name##_trap_handler(unsigned int vec, struct pt_regs *regs)
33 #define TRAP_HANDLER_DECL
34
35 #endif /* __ASM_SH_TRAPS_64_H */