+++ /dev/null
-/*
- * Copyright (c) 2000-2008 Apple Computer, Inc. All rights reserved.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
- *
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. The rights granted to you under the License
- * may not be used to create, or enable the creation or redistribution of,
- * unlawful or unlicensed copies of an Apple operating system, or to
- * circumvent, violate, or enable the circumvention or violation of, any
- * terms of an Apple operating system software license agreement.
- *
- * Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this file.
- *
- * The Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
- * Please see the License for the specific language governing rights and
- * limitations under the License.
- *
- * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
- */
-/*
- * @OSF_COPYRIGHT@
- */
-
-/* Miscellaneous constants and structures used by the exception
- * handlers
- */
-
-#ifndef _PPC_EXCEPTION_H_
-#define _PPC_EXCEPTION_H_
-
-#include <ppc/savearea.h>
-
-#ifndef ASSEMBLER
-
-#include <mach_kdb.h>
-#include <mach_kdp.h>
-
-#include <mach/machine/vm_types.h>
-#include <mach/boolean.h>
-#include <kern/ast.h>
-#include <kern/cpu_data.h>
-#include <kern/pms.h>
-#include <pexpert/pexpert.h>
-#include <IOKit/IOInterrupts.h>
-#include <ppc/machine_routines.h>
-#include <ppc/rtclock.h>
-
-/* Per processor CPU features */
-#pragma pack(4) /* Make sure the structure stays as we defined it */
-struct procFeatures {
- unsigned int Available; /* 0x000 */
-#define pfFloat 0x80000000
-#define pfFloatb 0
-#define pfAltivec 0x40000000
-#define pfAltivecb 1
-#define pfAvJava 0x20000000
-#define pfAvJavab 2
-#define pfSMPcap 0x10000000
-#define pfSMPcapb 3
-#define pfCanSleep 0x08000000
-#define pfCanSleepb 4
-#define pfCanNap 0x04000000
-#define pfCanNapb 5
-#define pfCanDoze 0x02000000
-#define pfCanDozeb 6
-#define pfSlowNap 0x00400000
-#define pfSlowNapb 9
-#define pfNoMuMMCK 0x00200000
-#define pfNoMuMMCKb 10
-#define pfNoL2PFNap 0x00100000
-#define pfNoL2PFNapb 11
-#define pfSCOMFixUp 0x00080000
-#define pfSCOMFixUpb 12
-#define pfHasDcba 0x00040000
-#define pfHasDcbab 13
-#define pfL1fa 0x00010000
-#define pfL1fab 15
-#define pfL2 0x00008000
-#define pfL2b 16
-#define pfL2fa 0x00004000
-#define pfL2fab 17
-#define pfL2i 0x00002000
-#define pfL2ib 18
-#define pfLClck 0x00001000
-#define pfLClckb 19
-#define pfWillNap 0x00000800
-#define pfWillNapb 20
-#define pfNoMSRir 0x00000400
-#define pfNoMSRirb 21
-#define pfL3pdet 0x00000200
-#define pfL3pdetb 22
-#define pf128Byte 0x00000080
-#define pf128Byteb 24
-#define pf32Byte 0x00000020
-#define pf32Byteb 26
-#define pf64Bit 0x00000010
-#define pf64Bitb 27
-#define pfL3 0x00000004
-#define pfL3b 29
-#define pfL3fa 0x00000002
-#define pfL3fab 30
-#define pfValid 0x00000001
-#define pfValidb 31
- unsigned short rptdProc; /* 0x004 */
- unsigned short lineSize; /* 0x006 */
- unsigned int l1iSize; /* 0x008 */
- unsigned int l1dSize; /* 0x00C */
- unsigned int l2cr; /* 0x010 */
- unsigned int l2Size; /* 0x014 */
- unsigned int l3cr; /* 0x018 */
- unsigned int l3Size; /* 0x01C */
- unsigned int pfMSSCR0; /* 0x020 */
- unsigned int pfMSSCR1; /* 0x024 */
- unsigned int pfICTRL; /* 0x028 */
- unsigned int pfLDSTCR; /* 0x02C */
- unsigned int pfLDSTDB; /* 0x030 */
- unsigned int pfMaxVAddr; /* 0x034 */
- unsigned int pfMaxPAddr; /* 0x038 */
- unsigned int pfPTEG; /* 0x03C */
- uint64_t pfHID0; /* 0x040 */
- uint64_t pfHID1; /* 0x048 */
- uint64_t pfHID2; /* 0x050 */
- uint64_t pfHID3; /* 0x058 */
- uint64_t pfHID4; /* 0x060 */
- uint64_t pfHID5; /* 0x068 */
- unsigned int l2crOriginal; /* 0x070 */
- unsigned int l3crOriginal; /* 0x074 */
- unsigned int pfBootConfig; /* 0x078 */
- unsigned int pfPowerModes; /* 0x07C */
-#define pmDPLLVmin 0x00010000
-#define pmDPLLVminb 15
-#define pmType 0x000000FF
-#define pmPowerTune 0x00000003
-#define pmDFS 0x00000002
-#define pmDualPLL 0x00000001
- unsigned int pfPowerTune0; /* 0x080 */
- unsigned int pfPowerTune1; /* 0x084 */
- unsigned int rsrvd88[6]; /* 0x088 */
-};
-#pragma pack()
-
-typedef struct procFeatures procFeatures;
-
-
-/*
- *
- * Various performance counters
- */
-#pragma pack(4) /* Make sure the structure stays as we defined it */
-struct hwCtrs {
-
- unsigned int hwInVains; /* In vain */
- unsigned int hwResets; /* Reset */
- unsigned int hwMachineChecks; /* Machine check */
- unsigned int hwDSIs; /* DSIs */
- unsigned int hwISIs; /* ISIs */
- unsigned int hwExternals; /* Externals */
- unsigned int hwAlignments; /* Alignment */
- unsigned int hwPrograms; /* Program */
- unsigned int hwFloatPointUnavailable; /* Floating point */
- unsigned int hwDecrementers; /* Decrementer */
- unsigned int hwIOErrors; /* I/O error */
- unsigned int hwrsvd0; /* Reserved */
- unsigned int hwSystemCalls; /* System call */
- unsigned int hwTraces; /* Trace */
- unsigned int hwFloatingPointAssists; /* Floating point assist */
- unsigned int hwPerformanceMonitors; /* Performance monitor */
- unsigned int hwAltivecs; /* VMX */
- unsigned int hwrsvd1; /* Reserved */
- unsigned int hwrsvd2; /* Reserved */
- unsigned int hwrsvd3; /* Reserved */
- unsigned int hwInstBreakpoints; /* Instruction breakpoint */
- unsigned int hwSystemManagements; /* System management */
- unsigned int hwAltivecAssists; /* Altivec Assist */
- unsigned int hwThermal; /* Thermals */
- unsigned int hwrsvd5; /* Reserved */
- unsigned int hwrsvd6; /* Reserved */
- unsigned int hwrsvd7; /* Reserved */
- unsigned int hwrsvd8; /* Reserved */
- unsigned int hwrsvd9; /* Reserved */
- unsigned int hwrsvd10; /* Reserved */
- unsigned int hwrsvd11; /* Reserved */
- unsigned int hwrsvd12; /* Reserved */
- unsigned int hwrsvd13; /* Reserved */
- unsigned int hwTrace601; /* Trace */
- unsigned int hwSIGPs; /* SIGP */
- unsigned int hwPreemptions; /* Preemption */
- unsigned int hwContextSwitchs; /* Context switch */
- unsigned int hwShutdowns; /* Shutdowns */
- unsigned int hwChokes; /* System ABENDs */
- unsigned int hwDataSegments; /* Data Segment Interruptions */
- unsigned int hwInstructionSegments; /* Instruction Segment Interruptions */
- unsigned int hwSoftPatches; /* Soft Patch interruptions */
- unsigned int hwMaintenances; /* Maintenance interruptions */
- unsigned int hwInstrumentations; /* Instrumentation interruptions */
- unsigned int hwrsvd14; /* Reserved */
- unsigned int hwhdec; /* 0B4 Hypervisor decrementer */
-
- unsigned int hwspare0[11]; /* 0B8 Reserved */
- unsigned int hwspare0a; /* 0E4 Reserved */
- unsigned int hwspare0b; /* 0E8 Reserved */
- unsigned int hwspare0c; /* 0EC Reserved */
- unsigned int hwspare0d; /* 0F0 Reserved */
- unsigned int hwIgnored; /* 0F4 Interruptions ignored */
- unsigned int hwRedrives; /* 0F8 Number of redriven interrupts */
- unsigned int hwSteals; /* 0FC Steals */
-/* 100 */
-
- unsigned int hwMckHang; /* ? */
- unsigned int hwMckSLBPE; /* ? */
- unsigned int hwMckTLBPE; /* ? */
- unsigned int hwMckERCPE; /* ? */
- unsigned int hwMckL1DPE; /* ? */
- unsigned int hwMckL1TPE; /* ? */
- unsigned int hwMckUE; /* ? */
- unsigned int hwMckIUE; /* ? */
- unsigned int hwMckIUEr; /* ? */
- unsigned int hwMckDUE; /* ? */
- unsigned int hwMckDTW; /* ? */
- unsigned int hwMckUnk; /* ? */
- unsigned int hwMckExt; /* ? */
- unsigned int hwMckICachePE; /* ? */
- unsigned int hwMckITagPE; /* ? */
- unsigned int hwMckIEratPE; /* ? */
- unsigned int hwMckDEratPE; /* ? */
- unsigned int hwspare2[15]; /* Pad to next 128 bndry */
-/* 0x180 */
-
- unsigned int napStamp[2]; /* Time base when we napped */
- unsigned int napTotal[2]; /* Total nap time in ticks */
- unsigned int numSIGPast; /* Number of SIGP asts recieved */
- unsigned int numSIGPcpureq; /* Number of SIGP cpu requests recieved */
- unsigned int numSIGPdebug; /* Number of SIGP debugs recieved */
- unsigned int numSIGPwake; /* Number of SIGP wakes recieved */
- unsigned int numSIGPtimo; /* Number of SIGP send timeouts */
- unsigned int numSIGPmast; /* Number of SIGPast messages merged */
- unsigned int numSIGPmwake; /* Number of SIGPwake messages merged */
-
- unsigned int hwWalkPhys; /* Number of entries to hw_walk_phys */
- unsigned int hwWalkFull; /* Full purge of connected PTE's */
- unsigned int hwWalkMerge; /* RC merge of connected PTE's */
- unsigned int hwWalkQuick; /* Quick scan of connected PTE's */
- unsigned int numSIGPcall; /* Number of SIGPcall messages received */
-
- unsigned int hwspare3[16]; /* Pad to 512 */
-
-};
-#pragma pack()
-
-typedef struct hwCtrs hwCtrs;
-
-struct patch_entry {
- unsigned int *addr;
- unsigned int data;
- unsigned int type;
- unsigned int value;
-};
-
-typedef struct patch_entry patch_entry_t;
-
-#define PATCH_INVALID 0
-#define PATCH_PROCESSOR 1
-#define PATCH_FEATURE 2
-#define PATCH_END_OF_TABLE 3
-
-#define PatchExt32 0x80000000
-#define PatchExt32b 0
-#define PatchLwsync 0x40000000
-#define PatchLwsyncb 1
-
-/* When an exception is taken, this info is accessed via sprg0 */
-/* We should always have this one on a cache line boundary */
-
-#pragma pack(4) /* Make sure the structure stays as we defined it */
-struct per_proc_info {
- unsigned short cpu_number;
- unsigned short cpu_flags; /* Various low-level flags */
- vm_offset_t istackptr;
- vm_offset_t intstack_top_ss;
-
- vm_offset_t debstackptr;
- vm_offset_t debstack_top_ss;
-
- unsigned int spcFlags; /* Special thread flags */
- unsigned int old_thread;
- ast_t pending_ast; /* mask of pending ast(s) */
-
- /* PPC cache line boundary here - 020 */
-
- int cpu_type;
- int cpu_subtype;
- int cpu_threadtype;
-/*
- * Note: the following two pairs of words need to stay in order and each pair must
- * be in the same reservation (line) granule
- */
- struct facility_context *FPU_owner; /* Owner of the FPU on this cpu */
- unsigned int liveVRSave; /* VRSave assiciated with live vector registers */
- struct facility_context *VMX_owner; /* Owner of the VMX on this cpu */
- unsigned int spcTRc; /* Special trace count */
- unsigned int spcTRp; /* Special trace buffer pointer */
-
- /* PPC cache line boundary here - 040 */
- addr64_t quickfret; /* List of saveareas to release */
- addr64_t lclfree; /* Pointer to local savearea list */
- unsigned int lclfreecnt; /* Entries in local savearea list */
- unsigned int holdQFret; /* Hold off releasing quickfret list */
- uint64_t rtcPop; /* Real Time Clock pop */
-
- /* PPC cache line boundary here - 060 */
- boolean_t interrupts_enabled;
- IOInterruptHandler interrupt_handler;
- void * interrupt_nub;
- unsigned int interrupt_source;
- void * interrupt_target;
- void * interrupt_refCon;
- uint64_t next_savearea; /* pointer to the next savearea */
-
- /* PPC cache line boundary here - 080 */
- unsigned int MPsigpStat; /* Signal Processor status (interlocked update for this one) */
-#define MPsigpMsgp 0xC0000000 /* Message pending (busy + pass ) */
-#define MPsigpBusy 0x80000000 /* Processor area busy, i.e., locked */
-#define MPsigpPass 0x40000000 /* Busy lock passed to receiving processor */
-#define MPsigpAck 0x20000000 /* Ack Busy lock passed to receiving processor */
-#define MPsigpSrc 0x000000FF /* Processor that owns busy, i.e., the ID of */
- /* whomever set busy. When a busy is passed, */
- /* this is the requestor of the function. */
-#define MPsigpFunc 0x0000FF00 /* Current function */
-#define MPsigpIdle 0x00 /* No function pending */
-#define MPsigpSigp 0x04 /* Signal a processor */
- unsigned int MPsigpParm0; /* SIGP parm 0 */
- unsigned int MPsigpParm1; /* SIGP parm 1 */
- unsigned int MPsigpParm2; /* SIGP parm 2 */
- cpu_id_t cpu_id;
- vm_offset_t start_paddr;
- unsigned int ruptStamp[2]; /* Timebase at last interruption */
-
- /* PPC cache line boundary here - 0A0 */
- procFeatures pf; /* Processor features */
-
- /* PPC cache line boundary here - 140 */
- void * pp_cbfr;
- void * pp_chud;
- rtclock_timer_t rtclock_timer;
- unsigned int ppbbTaskEnv; /* BlueBox Task Environment */
-
- /* PPC cache line boundary here - 160 */
- struct savearea * db_saved_state;
- time_base_enable_t time_base_enable;
- uint32_t ppXFlags;
- int running;
- int debugger_is_slave;
- int debugger_active;
- int debugger_pending;
- uint32_t debugger_holdoff;
-
- /* PPC cache line boundary here - 180 */
- uint64_t Uassist; /* User Assist DoubleWord */
- uint64_t validSegs; /* Valid SR/STB slots */
- addr64_t ppUserPmap; /* Current user state pmap (physical address) */
- unsigned int ppUserPmapVirt; /* Current user state pmap (virtual address) */
- unsigned int ppMapFlags; /* Mapping flags */
-
- /* PPC cache line boundary here - 1A0 */
- unsigned short ppInvSeg; /* Forces complete invalidate of SRs/SLB (this must stay with ppInvSeg) */
- unsigned short ppCurSeg; /* Set to 1 if user segments, 0 if kernel (this must stay with ppInvSeg) */
- unsigned int ppSegSteal; /* Count of segment slot steals */
- ppnum_t VMMareaPhys; /* vmm state page physical addr */
- unsigned int VMMXAFlgs; /* vmm extended flags */
- unsigned int FAMintercept; /* vmm FAM Exceptions to intercept */
- unsigned int hibernate; /* wake from hibernate */
- uint32_t save_tbl;
- uint32_t save_tbu;
-
- /* PPC cache line boundary here - 1C0 */
- unsigned int ppUMWmp[16]; /* Linkage mapping for user memory window - 64 bytes */
-
- /* PPC cache line boundary here - 200 */
- uint64_t tempr0; /* temporary savearea */
- uint64_t tempr1;
- uint64_t tempr2;
- uint64_t tempr3;
-
- uint64_t tempr4;
- uint64_t tempr5;
- uint64_t tempr6;
- uint64_t tempr7;
-
- uint64_t tempr8;
- uint64_t tempr9;
- uint64_t tempr10;
- uint64_t tempr11;
-
- uint64_t tempr12;
- uint64_t tempr13;
- uint64_t tempr14;
- uint64_t tempr15;
-
- uint64_t tempr16;
- uint64_t tempr17;
- uint64_t tempr18;
- uint64_t tempr19;
-
- uint64_t tempr20;
- uint64_t tempr21;
- uint64_t tempr22;
- uint64_t tempr23;
-
- uint64_t tempr24;
- uint64_t tempr25;
- uint64_t tempr26;
- uint64_t tempr27;
-
- uint64_t tempr28;
- uint64_t tempr29;
- uint64_t tempr30;
- uint64_t tempr31;
-
-
- /* PPC cache line boundary here - 300 */
- double emfp0; /* Copies of floating point registers */
- double emfp1; /* Used for emulation purposes */
- double emfp2;
- double emfp3;
-
- double emfp4;
- double emfp5;
- double emfp6;
- double emfp7;
-
- double emfp8;
- double emfp9;
- double emfp10;
- double emfp11;
-
- double emfp12;
- double emfp13;
- double emfp14;
- double emfp15;
-
- double emfp16;
- double emfp17;
- double emfp18;
- double emfp19;
-
- double emfp20;
- double emfp21;
- double emfp22;
- double emfp23;
-
- double emfp24;
- double emfp25;
- double emfp26;
- double emfp27;
-
- double emfp28;
- double emfp29;
- double emfp30;
- double emfp31;
-
-/* - 400 */
- unsigned int emfpscr_pad;
- unsigned int emfpscr;
- unsigned int empadfp[6];
-
-/* - 420 */
- unsigned int emvr0[4]; /* Copies of vector registers used both */
- unsigned int emvr1[4]; /* for full vector emulation or */
- unsigned int emvr2[4]; /* as saveareas while assisting denorms */
- unsigned int emvr3[4];
- unsigned int emvr4[4];
- unsigned int emvr5[4];
- unsigned int emvr6[4];
- unsigned int emvr7[4];
- unsigned int emvr8[4];
- unsigned int emvr9[4];
- unsigned int emvr10[4];
- unsigned int emvr11[4];
- unsigned int emvr12[4];
- unsigned int emvr13[4];
- unsigned int emvr14[4];
- unsigned int emvr15[4];
- unsigned int emvr16[4];
- unsigned int emvr17[4];
- unsigned int emvr18[4];
- unsigned int emvr19[4];
- unsigned int emvr20[4];
- unsigned int emvr21[4];
- unsigned int emvr22[4];
- unsigned int emvr23[4];
- unsigned int emvr24[4];
- unsigned int emvr25[4];
- unsigned int emvr26[4];
- unsigned int emvr27[4];
- unsigned int emvr28[4];
- unsigned int emvr29[4];
- unsigned int emvr30[4];
- unsigned int emvr31[4];
- unsigned int emvscr[4];
- unsigned int empadvr[4];
-/* - 640 */
-/* note implicit dependence on kSkipListMaxLists, which must be <= 28 */
- addr64_t skipListPrev[28]; /* prev ptrs saved as side effect of calling mapSearchFull() */
-
-/* - 720 */
-
- unsigned int patcharea[56];
-/* - 800 */
-
- hwCtrs hwCtr; /* Hardware exception counters */
-/* - A00 */
- addr64_t pp2ndPage; /* Physical address of the second page of the per_proc */
- addr64_t ijsave; /* Pointer to original savearea for injected code */
- uint32_t pprsvd0A10[4];
-/* - A20 */
- pmsd pms; /* Power Management Stepper control */
- unsigned int pprsvd0A40[16]; /* Reserved */
-/* - A80 */
- uint32_t pprsvd0A80[16]; /* Reserved */
-
- unsigned int pprsvd0AC0[336]; /* Reserved out to next page boundary */
-/* - 1000 */
-
-/*
- * This is the start of the second page of the per_proc block. Because we do not
- * allocate physically contiguous memory, it may be physically discontiguous from the
- * first page. Currently there isn't anything here that is accessed translation off,
- * but if we need it, pp2ndPage contains the physical address.
- *
- * Note that the boot processor's per_proc is statically allocated, so it will be a
- * V=R contiguous area. That allows access during early boot before we turn translation on
- * for the first time.
- */
-
- unsigned int processor[384]; /* processor structure */
-
- unsigned int pprsvd1[640]; /* Reserved out to next page boundary */
-/* - 2000 */
-
-};
-
-#pragma pack()
-
-
-/*
- * Macro to convert a processor_t processor to its attached per_proc_info_t per_proc
- */
-#define PROCESSOR_TO_PER_PROC(x) \
- ((struct per_proc_info*)((unsigned int)(x) \
- - (unsigned int)(((struct per_proc_info *)0)->processor)))
-
-extern struct per_proc_info BootProcInfo;
-
-#define MAX_CPUS 256
-
-struct per_proc_entry {
- addr64_t ppe_paddr; /* Physical address of the first page of per_proc, 2nd is in pp2ndPage. */
- unsigned int ppe_pad4[1];
- struct per_proc_info *ppe_vaddr; /* Virtual address of the per_proc */
-};
-
-extern struct per_proc_entry PerProcTable[MAX_CPUS-1];
-
-
-extern const char *trap_type[];
-
-#endif /* ndef ASSEMBLER */ /* with this savearea should be redriven */
-
-/* cpu_flags defs */
-#define SIGPactive 0x8000
-#define needSRload 0x4000
-#define turnEEon 0x2000
-#define SleepState 0x0800
-#define SleepStateb 4
-#define mcountOff 0x0400
-#define SignalReady 0x0200
-#define BootDone 0x0100
-#define loadMSR 0x7FF4
-
-/* ppXFlags defs */
-#define SignalReadyWait 0x00000001
-
-#define T_VECTOR_SIZE 4 /* function pointer size */
-
-/* Hardware exceptions */
-
-#define T_IN_VAIN (0x00 * T_VECTOR_SIZE)
-#define T_RESET (0x01 * T_VECTOR_SIZE)
-#define T_MACHINE_CHECK (0x02 * T_VECTOR_SIZE)
-#define T_DATA_ACCESS (0x03 * T_VECTOR_SIZE)
-#define T_INSTRUCTION_ACCESS (0x04 * T_VECTOR_SIZE)
-#define T_INTERRUPT (0x05 * T_VECTOR_SIZE)
-#define T_ALIGNMENT (0x06 * T_VECTOR_SIZE)
-#define T_PROGRAM (0x07 * T_VECTOR_SIZE)
-#define T_FP_UNAVAILABLE (0x08 * T_VECTOR_SIZE)
-#define T_DECREMENTER (0x09 * T_VECTOR_SIZE)
-#define T_IO_ERROR (0x0a * T_VECTOR_SIZE)
-#define T_RESERVED (0x0b * T_VECTOR_SIZE)
-#define T_SYSTEM_CALL (0x0c * T_VECTOR_SIZE)
-#define T_TRACE (0x0d * T_VECTOR_SIZE)
-#define T_FP_ASSIST (0x0e * T_VECTOR_SIZE)
-#define T_PERF_MON (0x0f * T_VECTOR_SIZE)
-#define T_VMX (0x10 * T_VECTOR_SIZE)
-#define T_INVALID_EXCP0 (0x11 * T_VECTOR_SIZE)
-#define T_INVALID_EXCP1 (0x12 * T_VECTOR_SIZE)
-#define T_INVALID_EXCP2 (0x13 * T_VECTOR_SIZE)
-#define T_INSTRUCTION_BKPT (0x14 * T_VECTOR_SIZE)
-#define T_SYSTEM_MANAGEMENT (0x15 * T_VECTOR_SIZE)
-#define T_ALTIVEC_ASSIST (0x16 * T_VECTOR_SIZE)
-#define T_THERMAL (0x17 * T_VECTOR_SIZE)
-#define T_INVALID_EXCP5 (0x18 * T_VECTOR_SIZE)
-#define T_INVALID_EXCP6 (0x19 * T_VECTOR_SIZE)
-#define T_INVALID_EXCP7 (0x1A * T_VECTOR_SIZE)
-#define T_INVALID_EXCP8 (0x1B * T_VECTOR_SIZE)
-#define T_INVALID_EXCP9 (0x1C * T_VECTOR_SIZE)
-#define T_INVALID_EXCP10 (0x1D * T_VECTOR_SIZE)
-#define T_INVALID_EXCP11 (0x1E * T_VECTOR_SIZE)
-#define T_INVALID_EXCP12 (0x1F * T_VECTOR_SIZE)
-#define T_EMULATE (0x20 * T_VECTOR_SIZE)
-
-#define T_RUNMODE_TRACE (0x21 * T_VECTOR_SIZE) /* 601 only */
-
-#define T_SIGP (0x22 * T_VECTOR_SIZE)
-#define T_PREEMPT (0x23 * T_VECTOR_SIZE)
-#define T_CSWITCH (0x24 * T_VECTOR_SIZE)
-#define T_SHUTDOWN (0x25 * T_VECTOR_SIZE)
-#define T_CHOKE (0x26 * T_VECTOR_SIZE)
-
-#define T_DATA_SEGMENT (0x27 * T_VECTOR_SIZE)
-#define T_INSTRUCTION_SEGMENT (0x28 * T_VECTOR_SIZE)
-
-#define T_SOFT_PATCH (0x29 * T_VECTOR_SIZE)
-#define T_MAINTENANCE (0x2A * T_VECTOR_SIZE)
-#define T_INSTRUMENTATION (0x2B * T_VECTOR_SIZE)
-#define T_ARCHDEP0 (0x2C * T_VECTOR_SIZE)
-#define T_HDEC (0x2D * T_VECTOR_SIZE)
-#define T_INJECT_EXIT (0x2E * T_VECTOR_SIZE)
-#define T_DTRACE_RET T_INJECT_EXIT
-
-#define T_AST (0x100 * T_VECTOR_SIZE)
-#define T_MAX T_CHOKE /* Maximum exception no */
-
-#define T_FAM 0x00004000
-
-#define EXCEPTION_VECTOR(exception) (exception * 0x100 / T_VECTOR_SIZE )
-
-/*
- * System choke (failure) codes
- */
-
-#define failDebug 0
-#define failStack 1
-#define failMapping 2
-#define failContext 3
-#define failNoSavearea 4
-#define failSaveareaCorr 5
-#define failBadLiveContext 6
-#define failSkipLists 7
-#define failUnalignedStk 8
-#define failPmap 9
-#define failTimeout 10
-
-/* Always must be last - update failNames table in model_dep.c as well */
-#define failUnknown 11
-
-#ifndef ASSEMBLER
-
-#pragma pack(4) /* Make sure the structure stays as we defined it */
-typedef struct resethandler {
- unsigned int type;
- vm_offset_t call_paddr;
- vm_offset_t arg__paddr;
-} resethandler_t;
-#pragma pack()
-
-extern resethandler_t ResetHandler;
-
-#endif
-
-#define RESET_HANDLER_NULL 0x0
-#define RESET_HANDLER_START 0x1
-#define RESET_HANDLER_BUPOR 0x2
-#define RESET_HANDLER_IGNORE 0x3
-
-#endif /* _PPC_EXCEPTION_H_ */