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 /*
   99  *      Machine-independent exception behaviors
  100  */
  101 
  102 # define EXCEPTION_DEFAULT              1
  103 /*      Send a catch_exception_raise message including the identity.
  104  */
  105 
  106 # define EXCEPTION_STATE                2
  107 /*      Send a catch_exception_raise_state message including the
  108  *      thread state.
  109  */
  110 
  111 # define EXCEPTION_STATE_IDENTITY       3
  112 /*      Send a catch_exception_raise_state_identity message including
  113  *      the thread identity and state.
  114  */
  115 
  116 #define MACH_EXCEPTION_CODES            0x80000000
  117 /*      Send 64-bit code and subcode in the exception header */
  118 
  119 /*
  120  * Masks for exception definitions, above
  121  * bit zero is unused, therefore 1 word = 31 exception types
  122  */
  123 
  124 #define EXC_MASK_BAD_ACCESS             (1 << EXC_BAD_ACCESS)
  125 #define EXC_MASK_BAD_INSTRUCTION        (1 << EXC_BAD_INSTRUCTION)
  126 #define EXC_MASK_ARITHMETIC             (1 << EXC_ARITHMETIC)
  127 #define EXC_MASK_EMULATION              (1 << EXC_EMULATION)
  128 #define EXC_MASK_SOFTWARE               (1 << EXC_SOFTWARE)
  129 #define EXC_MASK_BREAKPOINT             (1 << EXC_BREAKPOINT)
  130 #define EXC_MASK_SYSCALL                (1 << EXC_SYSCALL)
  131 #define EXC_MASK_MACH_SYSCALL           (1 << EXC_MACH_SYSCALL)
  132 #define EXC_MASK_RPC_ALERT              (1 << EXC_RPC_ALERT)
  133 #define EXC_MASK_CRASH                  (1 << EXC_CRASH)
  134 
  135 #define EXC_MASK_ALL    (EXC_MASK_BAD_ACCESS |                  \
  136                          EXC_MASK_BAD_INSTRUCTION |             \
  137                          EXC_MASK_ARITHMETIC |                  \
  138                          EXC_MASK_EMULATION |                   \
  139                          EXC_MASK_SOFTWARE |                    \
  140                          EXC_MASK_BREAKPOINT |                  \
  141                          EXC_MASK_SYSCALL |                     \
  142                          EXC_MASK_MACH_SYSCALL |                \
  143                          EXC_MASK_RPC_ALERT |                   \
  144                          EXC_MASK_CRASH |                       \
  145                          EXC_MASK_MACHINE)
  146 
  147 
  148 #define FIRST_EXCEPTION         1       /* ZERO is illegal */
  149 
  150 /*
  151  * Machine independent codes for EXC_SOFTWARE
  152  * Codes 0x10000 - 0x1FFFF reserved for OS emulation (Unix) 
  153  * 0x10000 - 0x10002 in use for unix signals
  154  */
  155 #define EXC_SOFT_SIGNAL         0x10003 /* Unix signal exceptions */
  156 
  157 #ifndef ASSEMBLER
  158 
  159 #include <mach/port.h>
  160 #include <mach/thread_status.h>
  161 #include <mach/machine/vm_types.h>
  162 /*
  163  * Exported types
  164  */
  165 
  166 typedef int                             exception_type_t;
  167 typedef integer_t                       exception_data_type_t;
  168 typedef int64_t                         mach_exception_data_type_t;
  169 typedef int                             exception_behavior_t;
  170 typedef exception_data_type_t           *exception_data_t;
  171 typedef mach_exception_data_type_t      *mach_exception_data_t;
  172 typedef unsigned int                    exception_mask_t;
  173 typedef exception_mask_t                *exception_mask_array_t;
  174 typedef exception_behavior_t            *exception_behavior_array_t;
  175 typedef thread_state_flavor_t           *exception_flavor_array_t;
  176 typedef mach_port_t                     *exception_port_array_t;
  177 typedef mach_exception_data_type_t      mach_exception_code_t;
  178 typedef mach_exception_data_type_t      mach_exception_subcode_t;
  179 
  180 #endif  /* ASSEMBLER */
  181 
  182 #endif  /* _MACH_EXCEPTION_TYPES_H_ */

Cache object: 1dc33c3f705900bb8dc6eecad4b0803a


[ 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.