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