diff --git a/third_party/xnu/README.crashpad b/third_party/xnu/README.crashpad index 55a67d5a..813f9886 100644 --- a/third_party/xnu/README.crashpad +++ b/third_party/xnu/README.crashpad @@ -17,6 +17,6 @@ Local Modifications: have been retained but these headers have not been provided. External headers must be made available to provide the cpu_type_t, cpu_subtype_t, and vm_prot_t types. - - osfmk/mach/exc.defs is present, to fill in for on iOS, where - it is missing. + - osfmk/mach/exc.defs and osfmk/mach/mach_exc.defs are present, to fill in + for and on iOS, where they are missing. - Anything not listed above is omitted. diff --git a/third_party/xnu/osfmk/mach/mach_exc.defs b/third_party/xnu/osfmk/mach/mach_exc.defs new file mode 100644 index 00000000..5ce6427b --- /dev/null +++ b/third_party/xnu/osfmk/mach/mach_exc.defs @@ -0,0 +1,133 @@ +/* + * Copyright (c) 2006 Apple Computer, Inc. All rights reserved. + * + * @APPLE_OSREFERENCE_LICENSE_HEADER_START@ + * + * 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. + * + * 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, QUIET ENJOYMENT OR NON-INFRINGEMENT. + * Please see the License for the specific language governing rights and + * limitations under the License. + * + * @APPLE_OSREFERENCE_LICENSE_HEADER_END@ + */ +/* + * @OSF_COPYRIGHT@ + */ +/* + * Mach Operating System + * Copyright (c) 1991,1990,1989,1988,1987 Carnegie Mellon University + * All Rights Reserved. + * + * Permission to use, copy, modify and distribute this software and its + * documentation is hereby granted, provided that both the copyright + * notice and this permission notice appear in all copies of the + * software, derivative works or modified versions, and any portions + * thereof, and that both notices appear in supporting documentation. + * + * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS" + * CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR + * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE. + * + * Carnegie Mellon requests users of this software to return to + * + * Software Distribution Coordinator or Software.Distribution@CS.CMU.EDU + * School of Computer Science + * Carnegie Mellon University + * Pittsburgh PA 15213-3890 + * + * any improvements or extensions that they make and grant Carnegie Mellon + * the rights to redistribute these changes. + */ +/* + */ +/* + * Abstract: + * MiG definitions file for Mach exception interface. + */ + +subsystem +#if KERNEL_USER + KernelUser +#endif +#if KERNEL_SERVER + KernelServer +#endif /* KERNEL_SERVER */ + + mach_exc 2405; + +#include +#include + +ServerPrefix catch_; + +type mach_exception_data_t = array[*:2] of int64_t; +type exception_type_t = int; + +routine mach_exception_raise( + exception_port : mach_port_t; + thread : mach_port_t; + task : mach_port_t; + exception : exception_type_t; + code : mach_exception_data_t +#if MACH_EXC_SERVER_SECTOKEN + ; + ServerSecToken stoken : security_token_t +#endif +#if MACH_EXC_SERVER_AUDITTOKEN + ; + ServerAuditToken atoken: audit_token_t +#endif + ); + +routine mach_exception_raise_state( + exception_port : mach_port_t; + exception : exception_type_t; + code : mach_exception_data_t, const; + inout flavor : int; + old_state : thread_state_t, const; + out new_state : thread_state_t +#if MACH_EXC_SERVER_SECTOKEN + ; + ServerSecToken stoken : security_token_t +#endif +#if MACH_EXC_SERVER_AUDITTOKEN + ; + ServerAuditToken atoken: audit_token_t +#endif + ); + +routine mach_exception_raise_state_identity( + exception_port : mach_port_t; + thread : mach_port_t; + task : mach_port_t; + exception : exception_type_t; + code : mach_exception_data_t; + inout flavor : int; + old_state : thread_state_t; + out new_state : thread_state_t +#if MACH_EXC_SERVER_SECTOKEN + ; + ServerSecToken stoken : security_token_t +#endif +#if MACH_EXC_SERVER_AUDITTOKEN + ; + ServerAuditToken atoken: audit_token_t +#endif + ); + +/* vim: set ft=c : */ diff --git a/util/BUILD.gn b/util/BUILD.gn index 10ca3a55..5bfe39e4 100644 --- a/util/BUILD.gn +++ b/util/BUILD.gn @@ -42,7 +42,10 @@ if (crashpad_is_mac || crashpad_is_ios) { "mach/child_port.defs", ] } else if (crashpad_is_ios) { - sources = [ "../third_party/xnu/osfmk/mach/exc.defs" ] + sources = [ + "../third_party/xnu/osfmk/mach/exc.defs", + "../third_party/xnu/osfmk/mach/mach_exc.defs", + ] } outputs = [