180709Sjake/*-
280709Sjake * Copyright (c) 2001 Jake Burkholder.
380709Sjake * All rights reserved.
480709Sjake *
580709Sjake * Redistribution and use in source and binary forms, with or without
680709Sjake * modification, are permitted provided that the following conditions
780709Sjake * are met:
880709Sjake * 1. Redistributions of source code must retain the above copyright
980709Sjake *    notice, this list of conditions and the following disclaimer.
1080709Sjake * 2. Redistributions in binary form must reproduce the above copyright
1180709Sjake *    notice, this list of conditions and the following disclaimer in the
1280709Sjake *    documentation and/or other materials provided with the distribution.
1380709Sjake *
1481334Sobrien * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
1580709Sjake * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
1680709Sjake * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
1781334Sobrien * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
1880709Sjake * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
1980709Sjake * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
2080709Sjake * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
2180709Sjake * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
2280709Sjake * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
2380709Sjake * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
2480709Sjake * SUCH DAMAGE.
2580709Sjake *
2680709Sjake * $FreeBSD$
2780709Sjake */
2880709Sjake
2980709Sjake#ifndef	_MACHINE_TRAP_H_
3080709Sjake#define	_MACHINE_TRAP_H_
3180709Sjake
3284179Sjake#ifdef _KERNEL
3384179Sjake
3488630Sjake#define	T_RESERVED			0
3588630Sjake#define	T_INSTRUCTION_EXCEPTION		1
3688630Sjake#define	T_INSTRUCTION_ERROR		2
3788630Sjake#define	T_INSTRUCTION_PROTECTION	3
3888630Sjake#define	T_ILLTRAP_INSTRUCTION		4
3988630Sjake#define	T_ILLEGAL_INSTRUCTION		5
4088630Sjake#define	T_PRIVILEGED_OPCODE		6
4188630Sjake#define	T_FP_DISABLED			7
4288630Sjake#define	T_FP_EXCEPTION_IEEE_754		8
4388630Sjake#define	T_FP_EXCEPTION_OTHER		9
44154419Skris#define	T_TAG_OVERFLOW			10
4588630Sjake#define	T_DIVISION_BY_ZERO		11
4688630Sjake#define	T_DATA_EXCEPTION		12
4788630Sjake#define	T_DATA_ERROR			13
4888630Sjake#define	T_DATA_PROTECTION		14
4988630Sjake#define	T_MEM_ADDRESS_NOT_ALIGNED	15
5088630Sjake#define	T_PRIVILEGED_ACTION		16
5188630Sjake#define	T_ASYNC_DATA_ERROR		17
5288630Sjake#define	T_TRAP_INSTRUCTION_16		18
5388630Sjake#define	T_TRAP_INSTRUCTION_17		19
5488630Sjake#define	T_TRAP_INSTRUCTION_18		20
5588630Sjake#define	T_TRAP_INSTRUCTION_19		21
5688630Sjake#define	T_TRAP_INSTRUCTION_20		22
5788630Sjake#define	T_TRAP_INSTRUCTION_21		23
5888630Sjake#define	T_TRAP_INSTRUCTION_22		24
5988630Sjake#define	T_TRAP_INSTRUCTION_23		25
6088630Sjake#define	T_TRAP_INSTRUCTION_24		26
6188630Sjake#define	T_TRAP_INSTRUCTION_25		27
6288630Sjake#define	T_TRAP_INSTRUCTION_26		28
6388630Sjake#define	T_TRAP_INSTRUCTION_27		29
6488630Sjake#define	T_TRAP_INSTRUCTION_28		30
6588630Sjake#define	T_TRAP_INSTRUCTION_29		31
6688630Sjake#define	T_TRAP_INSTRUCTION_30		32
6788630Sjake#define	T_TRAP_INSTRUCTION_31		33
68114257Sjake#define	T_INSTRUCTION_MISS		34
69114257Sjake#define	T_DATA_MISS			35
7080709Sjake
71114257Sjake#define	T_INTERRUPT			36
72114257Sjake#define	T_PA_WATCHPOINT			37
73114257Sjake#define	T_VA_WATCHPOINT			38
74114257Sjake#define	T_CORRECTED_ECC_ERROR		39
7588630Sjake#define	T_SPILL				40
7688630Sjake#define	T_FILL				41
7788630Sjake#define	T_FILL_RET			42
7888630Sjake#define	T_BREAKPOINT			43
7988630Sjake#define	T_CLEAN_WINDOW			44
8088630Sjake#define	T_RANGE_CHECK			45
8188630Sjake#define	T_FIX_ALIGNMENT			46
8288630Sjake#define	T_INTEGER_OVERFLOW		47
8388630Sjake#define	T_SYSCALL			48
8488630Sjake#define	T_RSTRWP_PHYS			49
8588630Sjake#define	T_RSTRWP_VIRT			50
8688781Sjake#define	T_KSTACK_FAULT			51
8788630Sjake
88105939Sjake#define	T_MAX				(T_KSTACK_FAULT + 1)
89105939Sjake
9088630Sjake#define	T_KERNEL			64
9188630Sjake
9280709Sjake#ifndef LOCORE
93182773Smariusvoid sun4u_set_traptable(void *tba_addr);
94190107Smariusextern const char *const trap_msg[];
9580709Sjake#endif
9680709Sjake
9784179Sjake#endif
9884179Sjake
9980709Sjake#endif /* !_MACHINE_TRAP_H_ */
100