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