crashpad/third_party/xnu/README.crashpad
Mark Mentovai 3e748e9c4e ios: Provide a copy of mach_exc.defs and run mig on it
This updates (and corrects) 8dbbaff2e1a5, which added exc.defs, by
adding mach_exc.defs too.

The difference betwen the exc and mach_exc subsystems is that the |code|
parameter is int[] in exc and int64_t[] in mach_exc. Many exceptions
carry the exception address in code[1], and a 32-bit int results in the
exception address being truncated in exc. No information is lost in
mach_exc, where a 64-bit int64_t is used.

In 8dbbaff2e1a5, I misremembered the type of the |code| parameter as a
type derived from uintptr_t, such as vm_address_t, an integer as wide as
a pointer. I was wrong, and mach_exc is necessary. I also noted that
Apple normally forbids mach_-prefixed interfaces in favor of the
prefix-less ones for the reasons I mentioned, and that, all else being
equal, it was desirable to adhere to the spirit of that convention.
Because neither exc nor mach_exc are available in the SDK, it’s moot
from a technical perspective, as we need to provide our own stubs either
way.

Bug: crashpad:31
Change-Id: Ied1be470e653b2bead1a283cb8b9283d210c328d
Reviewed-on: https://chromium-review.googlesource.com/c/crashpad/crashpad/+/2159286
Reviewed-by: Justin Cohen <justincohen@chromium.org>
Commit-Queue: Mark Mentovai <mark@chromium.org>
2020-04-21 19:23:24 +00:00

23 lines
948 B
Plaintext

Name: XNU
Short Name: xnu
URL: https://opensource.apple.com/source/xnu/
URL: https://opensource.apple.com/tarballs/xnu/
Version: 6153.11.26 (from macOS 10.15.0)
License: APSL 2.0
License File: APPLE_LICENSE
Security Critical: no
Description:
XNU is the operating system kernel used on macOS and other Apple systems.
Local Modifications:
- EXTERNAL_HEADERS/mach-o/loader.h is present. Its #includes of
<mach/machine/thread_status.h> and <architecture/byte_order.h> have been
commented out as unnecessary. Note that its #includes of <mach/machine.h> and
<mach/vm_prot.h> 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 and osfmk/mach/mach_exc.defs are present, to fill in
for <mach/exc.defs> and <mach/mach_exc.defs> on iOS, where they are missing.
- Anything not listed above is omitted.