]> git.saurik.com Git - apple/xnu.git/blobdiff - osfmk/ppc/exception.h
xnu-344.23.tar.gz
[apple/xnu.git] / osfmk / ppc / exception.h
index 8598062d0772d70e6b9c887e03b0044de191e3d1..ac6e4690d55b59de331d02a75744bc35dd008640 100644 (file)
@@ -3,22 +3,19 @@
  *
  * @APPLE_LICENSE_HEADER_START@
  * 
- * Copyright (c) 1999-2003 Apple Computer, Inc.  All Rights Reserved.
+ * The contents of this file constitute Original Code as defined in and
+ * are subject to the Apple Public Source License Version 1.1 (the
+ * "License").  You may not use this file except in compliance with the
+ * License.  Please obtain a copy of the License at
+ * http://www.apple.com/publicsource and read it before using this file.
  * 
- * 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. 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
+ * This 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.
+ * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT.  Please see the
+ * License for the specific language governing rights and limitations
+ * under the License.
  * 
  * @APPLE_LICENSE_HEADER_END@
  */
@@ -49,9 +46,8 @@
 #include <ppc/machine_routines.h>
 
 /*     Per processor CPU features */
-#pragma pack(4)                                                        /* Make sure the structure stays as we defined it */
 struct procFeatures {
-       unsigned int    Available;                      /* 0x000 */
+       unsigned int    Available;
 #define pfFloat                0x80000000
 #define pfFloatb       0
 #define pfAltivec      0x40000000
@@ -70,24 +66,12 @@ struct procFeatures {
 #define pfThermalb     7
 #define pfThermInt     0x00800000
 #define pfThermIntb    8
-#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 pfNoL2PFNap    0x00008000
+#define pfNoL2PFNapb   16
+#define pfSlowNap      0x00004000
+#define pfSlowNapb     17
+#define pfNoMuMMCK     0x00002000
+#define pfNoMuMMCKb    18
 #define pfLClck                0x00001000
 #define pfLClckb       19
 #define pfWillNap      0x00000800
@@ -96,50 +80,49 @@ struct procFeatures {
 #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 pfL1i          0x00000100
+#define pfL1ib         23
+#define pfL1d          0x00000080
+#define pfL1db         24
+#define pfL1fa         0x00000040
+#define pfL1fab                25
+#define pfL2           0x00000020
+#define pfL2b          26
+#define pfL2fa         0x00000010
+#define pfL2fab                27
+#define pfL2i          0x00000008
+#define pfL2ib         28
 #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;           /* 0x07C */
-       unsigned int    reserved[1];            /* 0x80 */
+       unsigned short  rptdProc;
+       unsigned short  lineSize;
+       unsigned int    l1iSize;
+       unsigned int    l1dSize;
+       unsigned int    l2cr;
+       unsigned int    l2Size;
+       unsigned int    l3cr;
+       unsigned int    l3Size;
+       unsigned int    pfHID0;
+       unsigned int    pfHID1;
+       unsigned int    pfHID2;
+       unsigned int    pfHID3;
+       unsigned int    pfMSSCR0;
+       unsigned int    pfMSSCR1;
+       unsigned int    pfICTRL;
+       unsigned int    pfLDSTCR;
+       unsigned int    pfLDSTDB;
+       unsigned int    l2crOriginal;
+       unsigned int    l3crOriginal;
+       unsigned int    pfBootConfig;
+       unsigned int    reserved[4];
 };
-#pragma pack()
 
 typedef struct procFeatures procFeatures;
 
-#pragma pack(4)                                                        /* Make sure the structure stays as we defined it */
 struct thrmControl {
        unsigned int    maxTemp;                        /* Maximum temprature before damage */
        unsigned int    throttleTemp;           /* Temprature at which to throttle down */
@@ -148,130 +131,11 @@ struct thrmControl {
        unsigned int    thrm3val;                       /* Value for thrm3 register */
        unsigned int    rsvd[3];                        /* Pad to cache line */
 };
-#pragma pack()
 
 typedef struct thrmControl thrmControl;
 
-/*
- *
- *             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;                               /* Reswerved */
-/*                                                                                     0x0B4 */
-
-       unsigned int    hwspare0[17];                   /* Reserved */
-       unsigned int    hwRedrives;                             /* Number of redriven interrupts */
-       unsigned int    hwSteals;                               /* PTE Steals */
-/*                                                                                     0x100 */
-
-       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    hwspare3[21];                   /* 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_TABLE_SIZE       12
-
-#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 */
@@ -281,8 +145,8 @@ struct per_proc_info {
        vm_offset_t     debstackptr;
        vm_offset_t     debstack_top_ss;
 
-       unsigned int    spcFlags;                       /* Special thread flags */
-       unsigned int    Uassist;                        /* User Assist Word */
+       unsigned int    tempwork1;                      /* Temp work area - monitor use carefully */
+       unsigned int    save_exception_type;
        unsigned int    old_thread;
 
        /* PPC cache line boundary here - 020 */
@@ -294,28 +158,31 @@ struct per_proc_info {
  *     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    holdQFret;                      /* Hold off releasing quickfret list */
-       unsigned int    rsrvd03C[1];
+       struct facility_context *FPU_owner;             /* Owner of the FPU on this cpu */
+       unsigned int    pprsv1;
+       struct facility_context *VMX_owner;             /* Owner of the VMX on this cpu */
+       unsigned int    pprsv2;
+       unsigned int    next_savearea;                  /* pointer to the next savearea */
 
        /* PPC cache line boundary here - 040 */
-       addr64_t                quickfret;                      /* List of saveareas to release */
-       addr64_t                lclfree;                        /* Pointer to local savearea list */
+       unsigned int    quickfret;                      /* List of saveareas to release */
+       unsigned int    lclfree;                        /* Pointer to local savearea list */
        unsigned int    lclfreecnt;                     /* Entries in local savearea list */
-       unsigned int    spcTRc;                         /* Special trace count */
-       unsigned int    spcTRp;                         /* Special trace buffer pointer */
-       unsigned int    ppbbTaskEnv;            /* BlueBox Task Environment */
+       unsigned int    Lastpmap;                       /* Last user pmap loaded  */
+       unsigned int    userspace;                      /* Last loaded user memory space ID  */
+       unsigned int    userpmap;                       /* User pmap - real address */
+       unsigned int    liveVRSave;                     /* VRSave assiciated with live vector registers */
+       unsigned int    spcFlags;                       /* Special thread flags */
 
        /* PPC cache line boundary here - 060 */
        boolean_t               interrupts_enabled;
+       unsigned int    ppbbTaskEnv;            /* BlueBox Task Environment */
        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 */
+       time_base_enable_t      time_base_enable;
 
        /* PPC cache line boundary here - 080 */
        unsigned int    MPsigpStat;                     /* Signal Processor status (interlocked update for this one) */
@@ -334,8 +201,7 @@ struct per_proc_info {
 #define SIGPdebug      2                                       /* Requests a debugger entry */
 #define SIGPwake       3                                       /* Wake up a sleeping processor */
 #define CPRQtemp       0                                       /* Get temprature of processor */
-#define CPRQtimebase   1                               /* Get timebase of processor */
-#define CPRQscom       2                                       /* SCOM */
+#define CPRQtimebase   1                                       /* Get timebase of processor */
        unsigned int    MPsigpParm0;            /* SIGP parm 0 */
        unsigned int    MPsigpParm1;            /* SIGP parm 1 */
        unsigned int    MPsigpParm2;            /* SIGP parm 2 */
@@ -346,79 +212,41 @@ struct per_proc_info {
        /* PPC cache line boundary here - 0A0 */
        procFeatures    pf;                                     /* Processor features */
        
-       /* PPC cache line boundary here - 120 */
+       /* PPC cache line boundary here - 100 */
        thrmControl             thrm;                           /* Thermal controls */
        
+       /* PPC cache line boundary here - 120 */
+       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 */
+       
        /* PPC cache line boundary here - 140 */
-       unsigned int    ppRsvd140[8];           /* Reserved */
+       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    spcTRc;                         /* Special trace count */
+       unsigned int    spcTRp;                         /* Special trace buffer pointer */
+       unsigned int    Uassist;                        /* User Assist Word */
+       vm_offset_t             VMMareaPhys;            /* vmm state page physical addr */
+       unsigned int    FAMintercept;           /* vmm FAM Exceptions to intercept */
        
        /* PPC cache line boundary here - 160 */
-       time_base_enable_t      time_base_enable;
-       unsigned int    ppRsvd164[3];           /* Reserved */
        cpu_data_t              pp_cpu_data;            /* cpu data info */
+       unsigned int    rsrvd170[4];            /* Reserved slots */
        
        /* PPC cache line boundary here - 180 */
-       unsigned int    ppRsvd180[2];           /* Reserved */
-       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 */
+       unsigned int    rsrvd180[8];            /* Reserved slots */
        
        /* 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    rsrvd1B4[3];            /* Reserved slots */
+       unsigned int    rsrvd1A0[8];            /* Reserved slots */
        
        /* PPC cache line boundary here - 1C0 */
-       unsigned int    ppCIOmp[16];            /* Linkage mapping for copyin/out - 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;
+       unsigned int    rsrvd1C0[8];            /* Reserved slots */
        
-       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 */
+       /* PPC cache line boundary here - 1E0 */
        double                  emfp0;                          /* Copies of floating point registers */
        double                  emfp1;                          /* Used for emulation purposes */
        double                  emfp2;
@@ -459,12 +287,12 @@ struct per_proc_info {
        double                  emfp30;
        double                  emfp31;
 
-/*                                                                - 400 */
+/*                                                                - 2E0 */
        unsigned int    emfpscr_pad;
        unsigned int    emfpscr;
        unsigned int    empadfp[6];
        
-/*                                                                - 420 */
+/*                                                                - 300 */
        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 */
@@ -499,21 +327,10 @@ struct per_proc_info {
        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 */
+/*                                                                - 520 */
 
        unsigned int    patcharea[56];
-/*                                                                - 800 */
-
-       hwCtrs                  hwCtr;                                  /* Hardware exception counters */
-/*                                                                - A00 */
-
-       unsigned int    pppadpage[384];                 /* Pad to end of page */
-/*                                                                - 1000 */
-
+/*                                                                - 600 */
 
 };
 
@@ -522,15 +339,13 @@ struct per_proc_info {
 #define        pp_simple_lock_count    pp_cpu_data.simple_lock_count
 #define        pp_interrupt_level      pp_cpu_data.interrupt_level
 
-#pragma pack()
-
 
 extern struct per_proc_info per_proc_info[NCPUS];
 
-
 extern char *trap_type[];
 
-#endif /* ndef ASSEMBLER */                                                                                    /* with this savearea should be redriven */
+#endif /* ndef ASSEMBLER */
+/* with this savearea should be redriven */
 
 /* cpu_flags defs */
 #define SIGPactive     0x8000
@@ -578,7 +393,7 @@ extern char *trap_type[];
 #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_INVALID_EXCP13               (0x20 * T_VECTOR_SIZE)
 
 #define T_RUNMODE_TRACE                        (0x21 * T_VECTOR_SIZE) /* 601 only */
 
@@ -588,20 +403,12 @@ extern char *trap_type[];
 #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_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 )
+#define        EXCEPTION_VECTOR(exception)     (exception * 0x100 /T_VECTOR_SIZE )
 
 /*
  *             System choke (failure) codes 
@@ -614,21 +421,17 @@ extern char *trap_type[];
 #define failNoSavearea 4
 #define failSaveareaCorr 5
 #define failBadLiveContext 6
-#define        failSkipLists 7
-#define        failUnalignedStk 8
 
 /* Always must be last - update failNames table in model_dep.c as well */
-#define failUnknown 9
+#define failUnknown 7
 
 #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;
 
@@ -636,7 +439,5 @@ extern resethandler_t ResetHandler;
 
 #define        RESET_HANDLER_NULL      0x0
 #define        RESET_HANDLER_START     0x1
-#define        RESET_HANDLER_BUPOR     0x2
-#define        RESET_HANDLER_IGNORE    0x3
 
 #endif /* _PPC_EXCEPTION_H_ */