The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/osfmk/mach/exception_types.h

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    1 /*
    2  * Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
    3  *
    4  * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
    5  * 
    6  * This file contains Original Code and/or Modifications of Original Code
    7  * as defined in and that are subject to the Apple Public Source License
    8  * Version 2.0 (the 'License'). You may not use this file except in
    9  * compliance with the License. The rights granted to you under the License
   10  * may not be used to create, or enable the creation or redistribution of,
   11  * unlawful or unlicensed copies of an Apple operating system, or to
   12  * circumvent, violate, or enable the circumvention or violation of, any
   13  * terms of an Apple operating system software license agreement.
   14  * 
   15  * Please obtain a copy of the License at
   16  * http://www.opensource.apple.com/apsl/ and read it before using this file.
   17  * 
   18  * The Original Code and all software distributed under the License are
   19  * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
   20  * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
   21  * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
   22  * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
   23  * Please see the License for the specific language governing rights and
   24  * limitations under the License.
   25  * 
   26  * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
   27  */
   28 /*
   29  * @OSF_COPYRIGHT@
   30  */
   31 /* 
   32  * Mach Operating System
   33  * Copyright (c) 1991,1990,1989,1988,1987 Carnegie Mellon University
   34  * All Rights Reserved.
   35  * 
   36  * Permission to use, copy, modify and distribute this software and its
   37  * documentation is hereby granted, provided that both the copyright
   38  * notice and this permission notice appear in all copies of the
   39  * software, derivative works or modified versions, and any portions
   40  * thereof, and that both notices appear in supporting documentation.
   41  * 
   42  * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
   43  * CONDITION.  CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
   44  * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
   45  * 
   46  * Carnegie Mellon requests users of this software to return to
   47  * 
   48  *  Software Distribution Coordinator  or  Software.Distribution@CS.CMU.EDU
   49  *  School of Computer Science
   50  *  Carnegie Mellon University
   51  *  Pittsburgh PA 15213-3890
   52  * 
   53  * any improvements or extensions that they make and grant Carnegie Mellon
   54  * the rights to redistribute these changes.
   55  */
   56 /*
   57  */
   58 
   59 #ifndef _MACH_EXCEPTION_TYPES_H_
   60 #define _MACH_EXCEPTION_TYPES_H_
   61 
   62 #include <mach/machine/exception.h>
   63 
   64 /*
   65  *      Machine-independent exception definitions.
   66  */
   67 
   68 #define EXC_BAD_ACCESS          1       /* Could not access memory */
   69                 /* Code contains kern_return_t describing error. */
   70                 /* Subcode contains bad memory address. */
   71 
   72 #define EXC_BAD_INSTRUCTION     2       /* Instruction failed */
   73                 /* Illegal or undefined instruction or operand */
   74 
   75 #define EXC_ARITHMETIC          3       /* Arithmetic exception */
   76                 /* Exact nature of exception is in code field */
   77 
   78 #define EXC_EMULATION           4       /* Emulation instruction */
   79                 /* Emulation support instruction encountered */
   80                 /* Details in code and subcode fields   */
   81 
   82 #define EXC_SOFTWARE            5       /* Software generated exception */
   83                 /* Exact exception is in code field. */
   84                 /* Codes 0 - 0xFFFF reserved to hardware */
   85                 /* Codes 0x10000 - 0x1FFFF reserved for OS emulation (Unix) */
   86 
   87 #define EXC_BREAKPOINT          6       /* Trace, breakpoint, etc. */
   88                 /* Details in code field. */
   89 
   90 #define EXC_SYSCALL             7       /* System calls. */
   91 
   92 #define EXC_MACH_SYSCALL        8       /* Mach system calls. */
   93 
   94 #define EXC_RPC_ALERT           9       /* RPC alert */
   95  
   96 #define EXC_CRASH               10      /* Abnormal process exit */
   97 
   98 #define EXC_RESOURCE            11      /* Hit resource consumption limit */
   99                 /* Exact resource is in code field. */
  100 
  101 /*
  102  *      Machine-independent exception behaviors
  103  */
  104 
  105 # define EXCEPTION_DEFAULT              1
  106 /*      Send a catch_exception_raise message including the identity.
  107  */
  108 
  109 # define EXCEPTION_STATE                2
  110 /*      Send a catch_exception_raise_state message including the
  111  *      thread state.
  112  */
  113 
  114 # define EXCEPTION_STATE_IDENTITY       3
  115 /*      Send a catch_exception_raise_state_identity message including
  116  *      the thread identity and state.
  117  */
  118 
  119 #define MACH_EXCEPTION_CODES            0x80000000
  120 /*      Send 64-bit code and subcode in the exception header */
  121 
  122 /*
  123  * Masks for exception definitions, above
  124  * bit zero is unused, therefore 1 word = 31 exception types
  125  */
  126 
  127 #define EXC_MASK_BAD_ACCESS             (1 << EXC_BAD_ACCESS)
  128 #define EXC_MASK_BAD_INSTRUCTION        (1 << EXC_BAD_INSTRUCTION)
  129 #define EXC_MASK_ARITHMETIC             (1 << EXC_ARITHMETIC)
  130 #define EXC_MASK_EMULATION              (1 << EXC_EMULATION)
  131 #define EXC_MASK_SOFTWARE               (1 << EXC_SOFTWARE)
  132 #define EXC_MASK_BREAKPOINT             (1 << EXC_BREAKPOINT)
  133 #define EXC_MASK_SYSCALL                (1 << EXC_SYSCALL)
  134 #define EXC_MASK_MACH_SYSCALL           (1 << EXC_MACH_SYSCALL)
  135 #define EXC_MASK_RPC_ALERT              (1 << EXC_RPC_ALERT)
  136 #define EXC_MASK_CRASH                  (1 << EXC_CRASH)
  137 #define EXC_MASK_RESOURCE               (1 << EXC_RESOURCE)
  138 
  139 #define EXC_MASK_ALL    (EXC_MASK_BAD_ACCESS |                  \
  140                          EXC_MASK_BAD_INSTRUCTION |             \
  141                          EXC_MASK_ARITHMETIC |                  \
  142                          EXC_MASK_EMULATION |                   \
  143                          EXC_MASK_SOFTWARE |                    \
  144                          EXC_MASK_BREAKPOINT |                  \
  145                          EXC_MASK_SYSCALL |                     \
  146                          EXC_MASK_MACH_SYSCALL |                \
  147                          EXC_MASK_RPC_ALERT |                   \
  148                          EXC_MASK_RESOURCE |                    \
  149                          EXC_MASK_MACHINE)
  150 
  151 #ifdef  KERNEL_PRIVATE
  152 #define EXC_MASK_VALID  (EXC_MASK_ALL | EXC_MASK_CRASH)
  153 #endif /* KERNEL_PRIVATE */
  154 
  155 #define FIRST_EXCEPTION         1       /* ZERO is illegal */
  156 
  157 /*
  158  * Machine independent codes for EXC_SOFTWARE
  159  * Codes 0x10000 - 0x1FFFF reserved for OS emulation (Unix) 
  160  * 0x10000 - 0x10002 in use for unix signals
  161  * 0x20000 - 0x2FFFF reserved for MACF
  162  */
  163 #define EXC_SOFT_SIGNAL         0x10003 /* Unix signal exceptions */
  164 
  165 #define EXC_MACF_MIN            0x20000 /* MACF exceptions */
  166 #define EXC_MACF_MAX            0x2FFFF
  167 
  168 #ifndef ASSEMBLER
  169 
  170 #include <mach/port.h>
  171 #include <mach/thread_status.h>
  172 #include <mach/machine/vm_types.h>
  173 /*
  174  * Exported types
  175  */
  176 
  177 typedef int                             exception_type_t;
  178 typedef integer_t                       exception_data_type_t;
  179 typedef int64_t                         mach_exception_data_type_t;
  180 typedef int                             exception_behavior_t;
  181 typedef exception_data_type_t           *exception_data_t;
  182 typedef mach_exception_data_type_t      *mach_exception_data_t;
  183 typedef unsigned int                    exception_mask_t;
  184 typedef exception_mask_t                *exception_mask_array_t;
  185 typedef exception_behavior_t            *exception_behavior_array_t;
  186 typedef thread_state_flavor_t           *exception_flavor_array_t;
  187 typedef mach_port_t                     *exception_port_array_t;
  188 typedef mach_exception_data_type_t      mach_exception_code_t;
  189 typedef mach_exception_data_type_t      mach_exception_subcode_t;
  190 
  191 #endif  /* ASSEMBLER */
  192 
  193 #endif  /* _MACH_EXCEPTION_TYPES_H_ */

Cache object: b3be9ce29405c3ee4f055a5348ff0804


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.