Annotation of kernel/bsd/dev/ppc/drvUSBCMD/MachineExceptions.h, revision 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: /*
        !            26:        File:           MachineExceptions.h
        !            27:  
        !            28:        Contains:       Processor Exception Handling Interfaces.
        !            29:  
        !            30:        Version:        Mac OS 8
        !            31:  
        !            32:        DRI:            Jim Murphy
        !            33:  
        !            34:        Copyright:      � 1993-1998 by Apple Computer, Inc., all rights reserved.
        !            35:  
        !            36:        Warning:        *** APPLE INTERNAL USE ONLY ***
        !            37:                                This file may contain unreleased API's
        !            38:  
        !            39:        BuildInfo:      Built by:                       Naga Pappireddi
        !            40:                                With Interfacer:        3.0d9 (PowerPC native)
        !            41:                                From:                           MachineExceptions.i
        !            42:                                        Revision:               27
        !            43:                                        Dated:                  6/15/98
        !            44:                                        Last change by: ALX
        !            45:                                        Last comment:   Make VMX stuff public.
        !            46:  
        !            47:        Bugs:           Report bugs to Radar component "System Interfaces", "Latest"
        !            48:                                List the version information (from above) in the Problem Description.
        !            49:  
        !            50: */
        !            51: #ifndef __MACHINEEXCEPTIONS__
        !            52: #define __MACHINEEXCEPTIONS__
        !            53: 
        !            54: #ifndef __MACTYPES__
        !            55: //naga#include <MacTypes.h>
        !            56: #endif
        !            57: 
        !            58: 
        !            59: 
        !            60: #if PRAGMA_ONCE
        !            61: #pragma once
        !            62: #endif
        !            63: 
        !            64: #ifdef __cplusplus
        !            65: extern "C" {
        !            66: #endif
        !            67: 
        !            68: #if PRAGMA_IMPORT
        !            69: #pragma import on
        !            70: #endif
        !            71: 
        !            72: #if PRAGMA_STRUCT_ALIGN
        !            73:        #pragma options align=power
        !            74: #elif PRAGMA_STRUCT_PACKPUSH
        !            75:        #pragma pack(push, 2)
        !            76: #elif PRAGMA_STRUCT_PACK
        !            77:        #pragma pack(2)
        !            78: #endif
        !            79: 
        !            80: /* Some basic declarations used throughout the kernel */
        !            81: typedef struct OpaqueAreaID*                   AreaID;
        !            82: //naga#if TARGET_OS_MAC
        !            83: /* Machine Dependent types for PowerPC: */
        !            84: 
        !            85: struct MachineInformationPowerPC {
        !            86:        UnsignedWide                                    CTR;
        !            87:        UnsignedWide                                    LR;
        !            88:        UnsignedWide                                    PC;
        !            89:        unsigned long                                   CR;
        !            90:        unsigned long                                   XER;
        !            91:        unsigned long                                   MSR;
        !            92:        unsigned long                                   MQ;
        !            93:        unsigned long                                   ExceptKind;
        !            94:        unsigned long                                   DSISR;
        !            95:        UnsignedWide                                    DAR;
        !            96:        UnsignedWide                                    Reserved;
        !            97: };
        !            98: typedef struct MachineInformationPowerPC MachineInformationPowerPC;
        !            99: 
        !           100: struct RegisterInformationPowerPC {
        !           101:        UnsignedWide                                    R0;
        !           102:        UnsignedWide                                    R1;
        !           103:        UnsignedWide                                    R2;
        !           104:        UnsignedWide                                    R3;
        !           105:        UnsignedWide                                    R4;
        !           106:        UnsignedWide                                    R5;
        !           107:        UnsignedWide                                    R6;
        !           108:        UnsignedWide                                    R7;
        !           109:        UnsignedWide                                    R8;
        !           110:        UnsignedWide                                    R9;
        !           111:        UnsignedWide                                    R10;
        !           112:        UnsignedWide                                    R11;
        !           113:        UnsignedWide                                    R12;
        !           114:        UnsignedWide                                    R13;
        !           115:        UnsignedWide                                    R14;
        !           116:        UnsignedWide                                    R15;
        !           117:        UnsignedWide                                    R16;
        !           118:        UnsignedWide                                    R17;
        !           119:        UnsignedWide                                    R18;
        !           120:        UnsignedWide                                    R19;
        !           121:        UnsignedWide                                    R20;
        !           122:        UnsignedWide                                    R21;
        !           123:        UnsignedWide                                    R22;
        !           124:        UnsignedWide                                    R23;
        !           125:        UnsignedWide                                    R24;
        !           126:        UnsignedWide                                    R25;
        !           127:        UnsignedWide                                    R26;
        !           128:        UnsignedWide                                    R27;
        !           129:        UnsignedWide                                    R28;
        !           130:        UnsignedWide                                    R29;
        !           131:        UnsignedWide                                    R30;
        !           132:        UnsignedWide                                    R31;
        !           133: };
        !           134: typedef struct RegisterInformationPowerPC RegisterInformationPowerPC;
        !           135: 
        !           136: struct FPUInformationPowerPC {
        !           137:        UnsignedWide                                    Registers[32];
        !           138:        unsigned long                                   FPSCR;
        !           139:        unsigned long                                   Reserved;
        !           140: };
        !           141: typedef struct FPUInformationPowerPC   FPUInformationPowerPC;
        !           142: 
        !           143: union Vector128 {
        !           144: #ifdef __VEC__
        !           145:        vector unsigned long                    v;
        !           146: #endif
        !           147:        unsigned long                                   l[4];
        !           148:        unsigned short                                  s[8];
        !           149:        unsigned char                                   c[16];
        !           150: };
        !           151: typedef union Vector128                                        Vector128;
        !           152: 
        !           153: struct VectorInformationPowerPC {
        !           154:        Vector128                                               Registers[32];
        !           155:        Vector128                                               VSCR;
        !           156:        UInt32                                                  VRsave;
        !           157: };
        !           158: typedef struct VectorInformationPowerPC        VectorInformationPowerPC;
        !           159: /* Exception related declarations */
        !           160: 
        !           161: enum {
        !           162:        kWriteReference                         = 0,
        !           163:        kReadReference                          = 1,
        !           164:        kFetchReference                         = 2,
        !           165:        writeReference                          = kWriteReference,                              /* Obsolete name*/
        !           166:        readReference                           = kReadReference,                               /* Obsolete name*/
        !           167:        fetchReference                          = kFetchReference                               /* Obsolete name*/
        !           168: };
        !           169: 
        !           170: 
        !           171: typedef unsigned long                                  MemoryReferenceKind;
        !           172: 
        !           173: struct MemoryExceptionInformation {
        !           174:        AreaID                                                  theArea;
        !           175:        LogicalAddress                                  theAddress;
        !           176:        OSStatus                                                theError;
        !           177:        MemoryReferenceKind                     theReference;
        !           178: };
        !           179: typedef struct MemoryExceptionInformation MemoryExceptionInformation;
        !           180: 
        !           181: enum {
        !           182:        kUnknownException                       = 0,
        !           183:        kIllegalInstructionException = 1,
        !           184:        kTrapException                          = 2,
        !           185:        kAccessException                        = 3,
        !           186:        kUnmappedMemoryException        = 4,
        !           187:        kExcludedMemoryException        = 5,
        !           188:        kReadOnlyMemoryException        = 6,
        !           189:        kUnresolvablePageFaultException = 7,
        !           190:        kPrivilegeViolationException = 8,
        !           191:        kTraceException                         = 9,
        !           192:        kInstructionBreakpointException = 10,
        !           193:        kDataBreakpointException        = 11,
        !           194:        kIntegerException                       = 12,
        !           195:        kFloatingPointException         = 13,
        !           196:        kStackOverflowException         = 14,
        !           197:        kTaskTerminationException       = 15,
        !           198:        kTaskCreationException          = 16
        !           199: };
        !           200: 
        !           201: #if OLDROUTINENAMES
        !           202: 
        !           203: enum {
        !           204:        unknownException                        = kUnknownException,                    /* Obsolete name*/
        !           205:        illegalInstructionException     = kIllegalInstructionException, /* Obsolete name*/
        !           206:        trapException                           = kTrapException,                               /* Obsolete name*/
        !           207:        accessException                         = kAccessException,                             /* Obsolete name*/
        !           208:        unmappedMemoryException         = kUnmappedMemoryException,             /* Obsolete name*/
        !           209:        excludedMemoryException         = kExcludedMemoryException,             /* Obsolete name*/
        !           210:        readOnlyMemoryException         = kReadOnlyMemoryException,             /* Obsolete name*/
        !           211:        unresolvablePageFaultException = kUnresolvablePageFaultException, /* Obsolete name*/
        !           212:        privilegeViolationException     = kPrivilegeViolationException, /* Obsolete name*/
        !           213:        traceException                          = kTraceException,                              /* Obsolete name*/
        !           214:        instructionBreakpointException = kInstructionBreakpointException, /* Obsolete name*/
        !           215:        dataBreakpointException         = kDataBreakpointException,             /* Obsolete name*/
        !           216:        integerException                        = kIntegerException,                    /* Obsolete name*/
        !           217:        floatingPointException          = kFloatingPointException,              /* Obsolete name*/
        !           218:        stackOverflowException          = kStackOverflowException,              /* Obsolete name*/
        !           219:        terminationException            = kTaskTerminationException,    /* Obsolete name*/
        !           220:        kTerminationException           = kTaskTerminationException             /* Obsolete name*/
        !           221: };
        !           222: 
        !           223: #endif  /* OLDROUTINENAMES */
        !           224: 
        !           225: 
        !           226: typedef unsigned long                                  ExceptionKind;
        !           227: 
        !           228: union ExceptionInfo {
        !           229:        MemoryExceptionInformation *    memoryInfo;
        !           230: };
        !           231: typedef union ExceptionInfo                            ExceptionInfo;
        !           232: 
        !           233: struct ExceptionInformationPowerPC {
        !           234:        ExceptionKind                                   theKind;
        !           235:        MachineInformationPowerPC *             machineState;
        !           236:        RegisterInformationPowerPC *    registerImage;
        !           237:        FPUInformationPowerPC *                 FPUImage;
        !           238:        ExceptionInfo                                   info;
        !           239:        VectorInformationPowerPC *              vectorImage;
        !           240: };
        !           241: typedef struct ExceptionInformationPowerPC ExceptionInformationPowerPC;
        !           242: 
        !           243: typedef ExceptionInformationPowerPC    ExceptionInformation;
        !           244: typedef MachineInformationPowerPC              MachineInformation;
        !           245: typedef RegisterInformationPowerPC             RegisterInformation;
        !           246: typedef FPUInformationPowerPC                  FPUInformation;
        !           247: typedef VectorInformationPowerPC               VectorInformation;
        !           248: /* 
        !           249:        Note:   An ExceptionHandler is NOT a UniversalProcPtr.
        !           250:                        It must be a PowerPC function pointer with NO routine descriptor. 
        !           251: */
        !           252: typedef CALLBACK_API_C( OSStatus , ExceptionHandler )(ExceptionInformationPowerPC *theException);
        !           253: /* Routine for installing per-process exception handlers */
        !           254: EXTERN_API( ExceptionHandler ) InstallExceptionHandler(ExceptionHandler theHandler);
        !           255: 
        !           256: //#endif  /* TARGET_OS_MAC */
        !           257: 
        !           258: 
        !           259: 
        !           260: #if PRAGMA_STRUCT_ALIGN
        !           261:        #pragma options align=reset
        !           262: #elif PRAGMA_STRUCT_PACKPUSH
        !           263:        #pragma pack(pop)
        !           264: #elif PRAGMA_STRUCT_PACK
        !           265:        #pragma pack()
        !           266: #endif
        !           267: 
        !           268: #ifdef PRAGMA_IMPORT_OFF
        !           269: #pragma import off
        !           270: #elif PRAGMA_IMPORT
        !           271: #pragma import reset
        !           272: #endif
        !           273: 
        !           274: #ifdef __cplusplus
        !           275: }
        !           276: #endif
        !           277: 
        !           278: #endif /* __MACHINEEXCEPTIONS__ */
        !           279: 

unix.superglobalmegacorp.com

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