1 /*
2  *  linux/include/asm-h8300/traps.h
3  *
4  *  Copyright (C) 2003 Yoshinori Sato <ysato@users.sourceforge.jp>
5  *
6  * This file is subject to the terms and conditions of the GNU General Public
7  * License.  See the file COPYING in the main directory of this archive
8  * for more details.
9  */
10 
11 #ifndef _H8300_TRAPS_H
12 #define _H8300_TRAPS_H
13 
14 extern void _system_call(void);
15 extern void _interrupt_entry(void);
16 extern void _trace_break(void);
17 extern void _nmi(void);
18 extern void _interrupt_entry(void);
19 
20 extern unsigned long *_interrupt_redirect_table;
21 
22 #define JMP_OP 0x5a000000
23 #define JSR_OP 0x5e000000
24 #define VECTOR(address) ((JMP_OP)|((unsigned long)address))
25 #define REDIRECT(address) ((JSR_OP)|((unsigned long)address))
26 #define CPU_VECTOR ((unsigned long *)0x000000)
27 #define ADDR_MASK (0xffffff)
28 
29 #define TRACE_VEC 5
30 
31 #define TRAP0_VEC 8
32 #define TRAP1_VEC 9
33 #define TRAP2_VEC 10
34 #define TRAP3_VEC 11
35 
36 extern char _start[], _etext[];
37 #define check_kernel_text(addr) \
38 	((addr >= (unsigned long)(_start)) && \
39 	 (addr <  (unsigned long)(_etext)) && !(addr & 1))
40 
41 #endif /* _H8300_TRAPS_H */
42