96 lines
3.4 KiB
C
96 lines
3.4 KiB
C
/* $NetBSD: trap.h,v 1.5 1999/01/15 07:42:48 matthias Exp $ */
|
|
|
|
/*
|
|
* Mach Operating System
|
|
* Copyright (c) 1992 Carnegie Mellon University
|
|
* Copyright (c) 1992 Helsinki University of Technology
|
|
* All Rights Reserved.
|
|
*
|
|
* Permission to use, copy, modify and distribute this software and its
|
|
* documentation is hereby granted, provided that both the copyright
|
|
* notice and this permission notice appear in all copies of the
|
|
* software, derivative works or modified versions, and any portions
|
|
* thereof, and that both notices appear in supporting documentation.
|
|
*
|
|
* CARNEGIE MELLON AND HELSINKI UNIVERSITY OF TECHNOLOGY ALLOW FREE USE
|
|
* OF THIS SOFTWARE IN ITS "AS IS" CONDITION. CARNEGIE MELLON AND
|
|
* HELSINKI UNIVERSITY OF TECHNOLOGY DISCLAIM ANY LIABILITY OF ANY KIND
|
|
* FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
|
|
*
|
|
* Carnegie Mellon requests users of this software to return to
|
|
*
|
|
* Software Distribution Coordinator or Software.Distribution@CS.CMU.EDU
|
|
* School of Computer Science
|
|
* Carnegie Mellon University
|
|
* Pittsburgh PA 15213-3890
|
|
*
|
|
* any improvements or extensions that they make and grant Carnegie Mellon
|
|
* the rights to redistribute these changes.
|
|
*/
|
|
/*
|
|
* File: ns532/trap.h
|
|
* Author: Tatu Ylonen, Helsinki University of Technology 1992.
|
|
* Modified for NetBSD by Phil Nelson
|
|
* Hardware trap vectors for ns532.
|
|
*/
|
|
|
|
#ifndef _MACHINE_TRAP_H_
|
|
#define _MACHINE_TRAP_H_
|
|
|
|
#ifdef _KERNEL
|
|
|
|
#define T_NVI 0 /* non-vectored interrupt */
|
|
#define T_NMI 1 /* non-maskable interrupt */
|
|
#define T_ABT 2 /* abort */
|
|
#define T_SLAVE 3 /* coprocessor trap */
|
|
#define T_ILL 4 /* illegal operation in user mode */
|
|
#define T_SVC 5 /* supervisor call */
|
|
#define T_DVZ 6 /* divide by zero */
|
|
#define T_FLG 7 /* flag instruction */
|
|
#define T_BPT 8 /* breakpoint instruction */
|
|
#define T_TRC 9 /* trace trap */
|
|
#define T_UND 10 /* undefined instruction */
|
|
#define T_RBE 11 /* restartable bus error */
|
|
#define T_NBE 12 /* non-restartable bus error */
|
|
#define T_OVF 13 /* integer overflow trap */
|
|
#define T_DBG 14 /* debug trap */
|
|
#define T_RESERVED 15 /* reserved */
|
|
|
|
/* Not a real trap. */
|
|
#define T_WATCHPOINT 17 /* watchpoint */
|
|
|
|
/* To allow for preemption */
|
|
#define T_AST 18 /* asynchronous system trap */
|
|
|
|
/* To include system/user mode in the trap information. */
|
|
#define T_USER 32
|
|
|
|
#define PARRDU_PHYS 0x28000040 /* Read parity error */
|
|
#define PARCLU_PHYS 0x28000050 /* Clear parity error */
|
|
|
|
#define PARRDU_VM 0xFFC80040 /* Read parity error */
|
|
#define PARCLU_VM 0xFFC80050 /* Clear parity error */
|
|
|
|
/* memory management status register bits and meanings. */
|
|
#define MSR_STT 0xf0 /* CPU status. */
|
|
#define STT_SEQ_INS 0x80 /* Sequential instruction fetch */
|
|
#define STT_NSQ_INS 0x90 /* Non-sequential instruction fetch */
|
|
#define STT_DATA 0xa0 /* Data transfer */
|
|
#define STT_RMW 0xb0 /* Read/modify/write */
|
|
#define STT_REA 0xc0 /* Read for effective address */
|
|
|
|
#define MSR_UST 0x08 /* User/supervisor */
|
|
#define UST_USER 0x08 /* User mode is 1. Super = 0 */
|
|
|
|
#define MSR_DDT 0x04 /* Data Direction */
|
|
#define DDT_WRITE 0x04 /* Write is 1. Read is 0 */
|
|
|
|
#define MSR_TEX 0x03 /* Exception kind. */
|
|
#define TEX_PTE1 0x01 /* First level PTE invalid */
|
|
#define TEX_PTE2 0x02 /* Second level PTE invalid */
|
|
#define TEX_PROT 0x03 /* Protection violation */
|
|
|
|
#endif /* _KERNEL */
|
|
|
|
#endif /* _MACHINE_TRAP_H_ */
|