X-Git-Url: https://git.saurik.com/apple/xnu.git/blobdiff_plain/1c79356b52d46aa6b508fb032f5ae709b1f2897b..d26ffc64f583ab2d29df48f13518685602bc8832:/bsd/sys/ux_exception.h diff --git a/bsd/sys/ux_exception.h b/bsd/sys/ux_exception.h index 493834456..836c658ca 100644 --- a/bsd/sys/ux_exception.h +++ b/bsd/sys/ux_exception.h @@ -1,23 +1,29 @@ /* - * Copyright (c) 2000 Apple Computer, Inc. All rights reserved. + * Copyright (c) 2000-2002 Apple Computer, Inc. All rights reserved. * - * @APPLE_LICENSE_HEADER_START@ + * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ * - * The contents of this file constitute Original Code as defined in and - * are subject to the Apple Public Source License Version 1.1 (the - * "License"). You may not use this file except in compliance with the - * License. Please obtain a copy of the License at - * http://www.apple.com/publicsource and read it before using this file. + * This file contains Original Code and/or Modifications of Original Code + * as defined in and that are subject to the Apple Public Source License + * Version 2.0 (the 'License'). You may not use this file except in + * compliance with the License. The rights granted to you under the License + * may not be used to create, or enable the creation or redistribution of, + * unlawful or unlicensed copies of an Apple operating system, or to + * circumvent, violate, or enable the circumvention or violation of, any + * terms of an Apple operating system software license agreement. * - * This Original Code and all software distributed under the License are - * distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER + * Please obtain a copy of the License at + * http://www.opensource.apple.com/apsl/ and read it before using this file. + * + * The Original Code and all software distributed under the License are + * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT. Please see the - * License for the specific language governing rights and limitations - * under the License. + * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. + * Please see the License for the specific language governing rights and + * limitations under the License. * - * @APPLE_LICENSE_HEADER_END@ + * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ */ /* * Mach Operating System @@ -27,40 +33,6 @@ * All rights reserved. The CMU software License Agreement specifies * the terms and conditions for use and redistribution. */ -/* - * HISTORY - * - * Revision 1.2.32.1 1998/11/11 21:54:39 aramesh - * Atlas merge - * - * Revision 1.1.1.1 1997/09/30 02:42:22 wsanchez - * Import of kernel from umeshv/kernel - * - * Revision 2.7 89/10/03 19:23:14 rpd - * Change from NeXT: added EXC_UNIX_ABORT. - * [89/08/20 23:16:13 rpd] - * - * Revision 2.6 89/03/09 19:35:07 rpd - * More cleanup. - * - * Revision 2.5 89/02/25 15:01:07 gm0w - * Changes for cleanup. - * - * Revision 2.4 89/02/07 01:01:10 mwyoung - * Relocated from uxkern/ux_exception.h - * - * Revision 2.3 89/01/15 16:35:44 rpd - * Use decl_simple_lock_data. - * [89/01/15 15:19:58 rpd] - * - * Revision 2.2 88/08/24 02:52:12 mwyoung - * Adjusted include file references. - * [88/08/17 02:27:27 mwyoung] - * - * 29-Sep-87 David Black (dlb) at Carnegie-Mellon University - * Created. - * - */ /* * Codes for Unix software exceptions under EXC_SOFTWARE. @@ -69,21 +41,38 @@ #ifndef _SYS_UX_EXCEPTION_H_ #define _SYS_UX_EXCEPTION_H_ +#include + +#ifdef __APPLE_API_UNSTABLE + #define EXC_UNIX_BAD_SYSCALL 0x10000 /* SIGSYS */ #define EXC_UNIX_BAD_PIPE 0x10001 /* SIGPIPE */ #define EXC_UNIX_ABORT 0x10002 /* SIGABRT */ +#endif /* __APPLE_API_UNSTABLE */ + #ifdef KERNEL +#ifdef __APPLE_API_PRIVATE /* * Kernel data structures for Unix exception handler. */ #include +#if defined(__x86_64__) || defined(__arm64__) +extern mach_port_t ux_exception_port; +#else extern mach_port_name_t ux_exception_port; +#endif /* __x86_64__ */ + +boolean_t machine_exception(int exception, mach_exception_code_t code, + mach_exception_subcode_t subcode, + int *unix_signal, mach_exception_code_t *unix_code); +void ux_handler_init(void); +#endif /* __APPLE_API_PRIVATE */ #endif /* KERNEL */ #endif /* _SYS_UX_EXCEPTION_H_ */