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