home *** CD-ROM | disk | FTP | other *** search
/ H4CK3R 4 / hacker04 / 04_HACK04.ISO / darwin / darwinx86.iso / usr / include / mach / ppc / exception.h < prev    next >
Encoding:
C/C++ Source or Header  |  2001-09-30  |  3.9 KB  |  115 lines

  1. /*
  2.  * Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
  3.  *
  4.  * @APPLE_LICENSE_HEADER_START@
  5.  * 
  6.  * The contents of this file constitute Original Code as defined in and
  7.  * are subject to the Apple Public Source License Version 1.1 (the
  8.  * "License").  You may not use this file except in compliance with the
  9.  * License.  Please obtain a copy of the License at
  10.  * http://www.apple.com/publicsource and read it before using this file.
  11.  * 
  12.  * This Original Code and all software distributed under the License are
  13.  * distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER
  14.  * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
  15.  * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
  16.  * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT.  Please see the
  17.  * License for the specific language governing rights and limitations
  18.  * under the License.
  19.  * 
  20.  * @APPLE_LICENSE_HEADER_END@
  21.  */
  22. /*
  23.  * @OSF_COPYRIGHT@
  24.  */
  25. /* 
  26.  * Copyright (c) 1990, 1991, 1992, The University of Utah and
  27.  * the Center for Software Science at the University of Utah (CSS).
  28.  * All rights reserved.
  29.  *
  30.  * Permission to use, copy, modify and distribute this software is hereby
  31.  * granted provided that (1) source code retains these copyright, permission,
  32.  * and disclaimer notices, and (2) redistributions including binaries
  33.  * reproduce the notices in supporting documentation, and (3) all advertising
  34.  * materials mentioning features or use of this software display the following
  35.  * acknowledgement: ``This product includes software developed by the Center
  36.  * for Software Science at the University of Utah.''
  37.  *
  38.  * THE UNIVERSITY OF UTAH AND CSS ALLOW FREE USE OF THIS SOFTWARE IN ITS "AS
  39.  * IS" CONDITION.  THE UNIVERSITY OF UTAH AND CSS DISCLAIM ANY LIABILITY OF
  40.  * ANY KIND FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
  41.  *
  42.  * CSS requests users of this software to return to css-dist@cs.utah.edu any
  43.  * improvements that they make and grant CSS redistribution rights.
  44.  *
  45.  *     Utah $Hdr: $
  46.  */
  47.  
  48. #ifndef    _MACH_PPC_EXCEPTION_H_
  49. #define _MACH_PPC_EXCEPTION_H_
  50.  
  51.  
  52. /* STATUS - TODO - this is just transcribed from hp stuff */
  53.  
  54. #define    EXC_TYPES_COUNT    10    /* incl. illegal exception 0 */
  55.  
  56. #define EXCEPTION_CODE_MAX 2    /* elements in vector (code+subcode) */
  57. /*
  58.  *    EXC_BAD_INSTRUCTION
  59.  */
  60.  
  61. #define EXC_PPC_INVALID_SYSCALL    1    /* invalid syscall number */
  62. #define EXC_PPC_UNIPL_INST    2    /* unimplemented instruction */
  63. #define EXC_PPC_PRIVINST    3    /* priviledged instruction */
  64. #define EXC_PPC_PRIVREG        4    /* priviledged register */
  65. #define EXC_PPC_TRACE        5    /* trace/single-step */
  66.  
  67. /*
  68.  *    EXC_BAD_ACCESS
  69.  *    Note: do not conflict with kern_return_t values returned by vm_fault
  70.  */
  71.  
  72. #define EXC_PPC_VM_PROT_READ        0x101 /* error reading syscall args */
  73. #define EXC_PPC_BADSPACE        0x102 /* bad space referenced */
  74. #define EXC_PPC_UNALIGNED        0x103 /* unaligned data reference */
  75.  
  76. /*
  77.  *    EXC_ARITHMETIC
  78.  */
  79.  
  80. #define EXC_PPC_OVERFLOW        1    /* integer overflow */
  81. #define EXC_PPC_ZERO_DIVIDE        2    /* integer divide by zero */
  82. #define EXC_PPC_FLT_INEXACT        3    /* IEEE inexact exception */
  83. #define EXC_PPC_FLT_ZERO_DIVIDE        4    /* IEEE zero divide */
  84. #define EXC_PPC_FLT_UNDERFLOW        5    /* IEEE floating underflow */
  85. #define EXC_PPC_FLT_OVERFLOW        6    /* IEEE floating overflow */
  86. #define EXC_PPC_FLT_NOT_A_NUMBER    7    /* IEEE not a number */
  87.  
  88. /*
  89.  * EXC_PPC_NOEMULATION should go away when we add software emulation
  90.  * for floating point. Right now we don't support this.
  91.  */
  92.  
  93. #define EXC_PPC_NOEMULATION        8    /* no floating point emulation */
  94. #define EXC_PPC_ALTIVECASSIST    9    /* Altivec Denorm Assist */
  95.  
  96. /*
  97.  *    EXC_SOFTWARE
  98.  */
  99. #define EXC_PPC_TRAP        1        /* Program trap */
  100. #define EXC_PPC_MIGRATE        0x10100        /* Time to bolt */
  101.  
  102.  
  103. /*
  104.  *    EXC_BREAKPOINT
  105.  */
  106.  
  107. #define EXC_PPC_BREAKPOINT        EXC_PPC_TRAP    /* breakpoint trap */
  108.  
  109. /*
  110.  *    machine dependent exception masks
  111.  */
  112. #define    EXC_MASK_MACHINE    0
  113.  
  114. #endif    /* _MACH_PPC_EXCEPTION_H_ */
  115.