Annotation of kernel/machdep/ppc/nkdefs.h, revision 1.1.1.1

1.1       root        1: /*
                      2:  * Copyright (c) 1999 Apple Computer, Inc. All rights reserved.
                      3:  *
                      4:  * @APPLE_LICENSE_HEADER_START@
                      5:  * 
                      6:  * Portions Copyright (c) 1999 Apple Computer, Inc.  All Rights
                      7:  * Reserved.  This file contains Original Code and/or Modifications of
                      8:  * Original Code as defined in and that are subject to the Apple Public
                      9:  * Source License Version 1.1 (the "License").  You may not use this file
                     10:  * except in compliance with the License.  Please obtain a copy of the
                     11:  * License at http://www.apple.com/publicsource and read it before using
                     12:  * this file.
                     13:  * 
                     14:  * The Original Code and all software distributed under the License are
                     15:  * distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER
                     16:  * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
                     17:  * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
                     18:  * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT.  Please see the
                     19:  * License for the specific language governing rights and limitations
                     20:  * under the License.
                     21:  * 
                     22:  * @APPLE_LICENSE_HEADER_END@
                     23:  */
                     24: 
                     25: #if TRUE
                     26: /* Additional SPR's */
                     27: #define        sprMQ           0       /* mulx/divx extension */
                     28: #define        sprXER          1       /* */
                     29: #define        fromRTCU        4       /* read realtime clock */
                     30: #define        fromRTCL        5       /* ditto */
                     31: #define        sprLR           8       /* link register */
                     32: #define        sprCTR          9       /* counter register */
                     33: #define        toRTCU          20      /* write realtime clock (supervisor mode only)*/
                     34: #define        toRTCL          21      /* ditto */
                     35: #define        fromDEC         22      /* decrementer register */
                     36: #define        sprPVR          287     /* processor version register */
                     37: #define        sprMMCR0        952     /* performance monitor (604) */
                     38: #define        sprPMC1         953     /* performance monitor (604) */
                     39: #define        sprPMC2         954     /* performance monitor (604) */
                     40: #define        sprSIA          955     /* performance monitor (604) */
                     41: #define        sprMMCR1        956     /* performance monitor (Sirocco) */
                     42: #define        sprPMC3         957     /* performance monitor (Sirocco) */
                     43: #define        sprPMC4         958     /* performance monitor (Sirocco) */
                     44: #define        sprSDA          959     /* performance monitor (604) */
                     45: 
                     46: #define rcr0 0
                     47: #define rcr1 1
                     48: #define rcr2 2
                     49: #define rcr3 3
                     50: #define rcr4 4
                     51: #define rcr5 5
                     52: #define rcr6 6
                     53: #define rcr7 7
                     54: 
                     55: #define        lt_b    0
                     56: #define        gt_b    1
                     57: #define        eq_b    2
                     58: #define        so_b    3
                     59: 
                     60: /*
                     61: **     Register defines for EmulateUnimplimentedInstructions
                     62: */
                     63: #define        dKernelDataPtr          1
                     64: 
                     65: #define        dInitEmulatorDataPtr    8
                     66: #define        dInitZero               0
                     67: 
                     68: #define        dContextPtr             6
                     69: #define        dContextStatFlags       7
                     70: #define        dTmp1                   8
                     71: #define        dTmp2                   9
                     72: 
                     73: #define        dSavedSRR0              10
                     74: #define        dSavedSRR1              11
                     75: #define        dSavedLR                        12
                     76: #define        dSavedCR                        13
                     77: 
                     78: #define        dMSR_Disabled           14
                     79: #define        dMSR_Enabled            15
                     80: #define        dMemCtxFlags            16
                     81: #define        dMemCmdInfo             17
                     82: #define        dMemUpdateEA            18
                     83: #define        dMemAddress             19
                     84: #define        dMemDataH               20
                     85: #define        dMemDataL               21
                     86: #define        dMemByteCount           22
                     87: 
                     88: #define        dDataTemp               23
                     89: #define        dSavedVBR               24
                     90: #define        dMemProcPtr             25
                     91: #define        dMemDisp                dDataTemp
                     92: 
                     93: #define        dMemSetupInfo           26
                     94: #define        dMemInstr               27
                     95: #define        dRegIndex               28
                     96: 
                     97: /*
                     98: **     Register defines for EmulateUnimplimentedInstructions
                     99: */
                    100: #define        KernelDataPtr           r1
                    101: 
                    102: #define        InitEmulatorDataPtr     r8
                    103: #define        InitZero                r0
                    104: 
                    105: #define        ContextPtr              r6
                    106: #define        ContextStatFlags        r7
                    107: #define        Tmp1                    r8
                    108: #define        Tmp2                    r9
                    109: 
                    110: #define        SavedSRR0               r10
                    111: #define        SavedSRR1               r11
                    112: #define        SavedLR                 r12
                    113: #define        SavedCR                 r13
                    114: 
                    115: #define        MSR_Disabled            r14
                    116: #define        MSR_Enabled             r15
                    117: #define        MemCtxFlags             r16
                    118: #define        MemCmdInfo              r17
                    119: #define        MemUpdateEA             r18
                    120: #define        MemAddress              r19
                    121: #define        MemDataH                r20
                    122: #define        MemDataL                r21
                    123: #define        MemByteCount            r22
                    124: 
                    125: #define        DataTemp                r23
                    126: #define        SavedVBR                r24
                    127: #define        MemProcPtr              r25
                    128: #define        MemDisp                 DataTemp
                    129: 
                    130: #define        MemSetupInfo            r26
                    131: #define        MemInstr                r27
                    132: #define        RegIndex                r28
                    133: 
                    134: /*
                    135: ** Flag Bit Definitions
                    136: */
                    137: #define        b_EmulatePowerMQ        8
                    138: #define        b_EmulatePowerRTC       9
                    139: #define        b_EmulatePowerDEC       10
                    140: #define        b_EmulatePowerComplex   11
                    141: #define        b_EmulatePowerCLCS      12
                    142: #define        b_EmulatePowerMemory    13
                    143: #define        b_EmulateInvalidSPR     14
                    144: #define        b_EmulatePOWERmaskLSB   b_EmulateInvalidSPR
                    145: #define        b_EmulateOptional       16
                    146: #define        b_EmulatePrivMFPVR      17
                    147: #define        b_EmulatePrivSPRperf    18
                    148: #define        b_EmulatePrivSPRperf2   19
                    149: #define        b_EmulatePrivSPRperf0   20
                    150: 
                    151: /*
                    152: ** CtxFlags bit numbers
                    153: */
                    154: #define        b_CtxFlagSystemContext                  8
                    155: #define        b_CtxFlagHWPowerCompatible              13
                    156: #define        b_CtxFlagHWOptionsalInstr               14
                    157: #define        b_CtxFlagHW64Bit                        15
                    158: #define        b_CtxFlagUnused16                       16
                    159: #define        b_CtxFlagUnused17                       17
                    160: #define        b_CtxFlagUnused18                       18
                    161: #define        b_CtxFlagUnused19                       19
                    162: #define        b_CtxFlagFPExceptionMode0               20
                    163: #define        b_CtxFlagStepTraceEnabled               21
                    164: #define        b_CtxFlagBranchTraceEnabled             22
                    165: #define        b_CtxFlagFpExceptionMode1               23
                    166: #define        b_CtxFlagUnused24                       24
                    167: #define        b_CtxFlagUnused25                       24
                    168: #define        b_CtxFlagTracePending                   26
                    169: #define        b_CtxFlagMemInfoValid                   27
                    170: #define        b_CtxFlag64BitMode                      28
                    171: #define        b_CtxFlagEmulatePowerCompatible         29
                    172: #define        b_CtxFlagEmulateOptionalInstr           30
                    173: #define        b_CtxFlagInstructionContinuation        31
                    174: 
                    175: /* Exception Causes stored in bits 0..7 fo CtxFlags    */
                    176: #define        ecNoException                   ((0<<3)+0)
                    177: #define        ecSystemCall                    ((0<<3)+1)
                    178: #define        ecTrapInstr                     ((0<<3)+2)
                    179: #define        ecFloatException                ((0<<3)+3)
                    180: #define        ecInvalidInstr                  ((0<<3)+4)
                    181: #define        ecPrivilegedInstr               ((0<<3)+5)
                    182: #define        ecMachineCheck                  ((0<<3)+7)
                    183: 
                    184: #define        ecInstTrace                     ((1<<3)+0)
                    185: #define        ecInstInvalidAddress            ((1<<3)+2)
                    186: #define        ecInstHardwareFault             ((1<<3)+3)
                    187: #define        ecPageFalut                     ((1<<3)+4)
                    188: #define        ecInstSupAccessViolation        ((1<<3)+6)
                    189: 
                    190: #define        ecDataInvalidAddress            ((2<<3)+2)
                    191: #define        ecDataHardwareFault             ((2<<3)+3)
                    192: #define        ecDataPageFault                 ((2<<3)+4)
                    193: #define        ecDataWriteViolation            ((2<<3)+5)
                    194: #define        ecDataSupAccessViolation        ((2<<3)+6)
                    195: #define        ecDataSupWriteViolation         ((2<<3)+7)
                    196: 
                    197: /*
                    198: **     Registers used for decoding fields of unimplemented instructions
                    199: */
                    200: #define        UnimpRSRT               MemCmdInfo
                    201: #define        UnimpRS                 UnimpRSRT
                    202: #define        UnimpRT                 UnimpRSRT
                    203: #define        UnimpRA                 MemUpdateEA
                    204: #define        UnimpRB                 MemAddress
                    205: #define        UnimpMQptr              MemByteCount
                    206: #define        UnimpMQtmp              SavedVBR
                    207: #define        UnimpXERtmp             MemSetupInfo
                    208: 
                    209: #define        dUnimpRSRT              dMemCmdInfo
                    210: #define        dUnimpRS                dUnimpRSRT
                    211: #define        dUnimpRT                dUnimpRSRT
                    212: #define        dUnimpRA                dMemUpdateEA
                    213: #define        dUnimpRB                dMemAddress
                    214: #define        dUnimpMQptr             dMemByteCount
                    215: #define        dUnimpMQtmp             dSavedVBR
                    216: #define        dUnimpXERtmp            dMemSetupInfo
                    217: 
                    218: #endif

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.