Commit 26c88e4f45

Jakub Konka <kubkon@jakubkonka.com>
2023-03-31 21:20:41
libc: update macOS libc headers to latest SDK 13.3
1 parent 5b82b40
lib/libc/include/aarch64-macos.13-none/mach/arm/thread_status.h
@@ -76,6 +76,11 @@
 #define ARM_STATE_FLAVOR_IS_OTHER_VALID(_flavor_) 0
 #endif
 
+#define FLAVOR_MODIFIES_CORE_CPU_REGISTERS(x) \
+((x == ARM_THREAD_STATE) ||     \
+ (x == ARM_THREAD_STATE32) ||   \
+ (x == ARM_THREAD_STATE64))
+
 #define VALID_THREAD_STATE_FLAVOR(x) \
 	((x == ARM_THREAD_STATE) ||           \
 	 (x == ARM_VFP_STATE) ||              \
lib/libc/include/any-macos-any/sys/timex.h
@@ -0,0 +1,198 @@
+/*-
+ ***********************************************************************
+ *								       *
+ * Copyright (c) David L. Mills 1993-2001			       *
+ * Copyright (c) Poul-Henning Kamp 2000-2001                           *
+ *								       *
+ * Permission to use, copy, modify, and distribute this software and   *
+ * its documentation for any purpose and without fee is hereby	       *
+ * granted, provided that the above copyright notice appears in all    *
+ * copies and that both the copyright notice and this permission       *
+ * notice appear in supporting documentation, and that the name        *
+ * University of Delaware not be used in advertising or publicity      *
+ * pertaining to distribution of the software without specific,	       *
+ * written prior permission. The University of Delaware makes no       *
+ * representations about the suitability this software for any	       *
+ * purpose. It is provided "as is" without express or implied	       *
+ * warranty.							       *
+ *								       *
+ ***********************************************************************
+ *
+ * $FreeBSD$
+ *
+ * This header file defines the Network Time Protocol (NTP) interfaces
+ * for user and daemon application programs.
+ *
+ * This file was originally created 17 Sep 93 by David L. Mills, Professor
+ * of University of Delaware, building on work which had already been ongoing
+ * for a decade and a half at that point in time.
+ *
+ * In 2000 the APIs got a upgrade from microseconds to nanoseconds,
+ * a joint work between Poul-Henning Kamp and David L. Mills.
+ *
+ */
+
+/*
+ * Copyright (c) 2017 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@
+ */
+
+#ifndef _SYS_TIMEX_H_
+#define _SYS_TIMEX_H_ 1
+
+#include <sys/time.h>
+
+#define NTP_API         4               /* NTP API version */
+
+/*
+ * The following defines establish the performance envelope of the
+ * kernel discipline loop. Phase or frequency errors greater than
+ * NAXPHASE or MAXFREQ are clamped to these maxima. For update intervals
+ * less than MINSEC, the loop always operates in PLL mode; while, for
+ * update intervals greater than MAXSEC, the loop always operates in FLL
+ * mode. Between these two limits the operating mode is selected by the
+ * STA_FLL bit in the status word.
+ */
+
+#define MAXPHASE        500000000L      /* max phase error (ns) */
+#define MAXFREQ         500000L         /* max freq error (ns/s) */
+#define MINSEC          256             /* min FLL update interval (s) */
+#define MAXSEC          2048            /* max PLL update interval (s) */
+#define NANOSECOND      1000000000L     /* nanoseconds in one second */
+#define SCALE_PPM       (65536 / 1000)  /* crude ns/s to scaled PPM */
+#define MAXTC           10              /* max time constant */
+
+/* Codes for PPS (pulse-per-second) signals or leap seconds are not used but kept
+ * unchanged and commented for future compatibility.
+ */
+
+/*
+ * Control mode codes (timex.modes)
+ */
+#define MOD_OFFSET      0x0001          /* set time offset */
+#define MOD_FREQUENCY   0x0002          /* set frequency offset */
+#define MOD_MAXERROR    0x0004          /* set maximum time error */
+#define MOD_ESTERROR    0x0008          /* set estimated time error */
+#define MOD_STATUS      0x0010          /* set clock status bits */
+#define MOD_TIMECONST   0x0020          /* set PLL time constant */
+#define MOD_PPSMAX      0x0040          /* set PPS maximum averaging time */
+#define MOD_TAI         0x0080          /* set TAI offset */
+#define MOD_MICRO       0x1000          /* select microsecond resolution */
+#define MOD_NANO        0x2000          /* select nanosecond resolution */
+#define MOD_CLKB        0x4000          /* select clock B */
+#define MOD_CLKA        0x8000          /* select clock A */
+
+/*
+ * Status codes (timex.status)
+ */
+#define STA_PLL         0x0001          /* enable PLL updates (rw) */
+#define STA_PPSFREQ     0x0002          /* enable PPS freq discipline (rw) */
+#define STA_PPSTIME     0x0004          /* enable PPS time discipline (rw) */
+#define STA_FLL         0x0008          /* enable FLL mode (rw) */
+#define STA_INS         0x0010          /* insert leap (rw) */
+#define STA_DEL         0x0020          /* delete leap (rw) */
+#define STA_UNSYNC      0x0040          /* clock unsynchronized (rw) */
+#define STA_FREQHOLD    0x0080          /* hold frequency (rw) */
+#define STA_PPSSIGNAL   0x0100          /* PPS signal present (ro) */
+#define STA_PPSJITTER   0x0200          /* PPS signal jitter exceeded (ro) */
+#define STA_PPSWANDER   0x0400          /* PPS signal wander exceeded (ro) */
+#define STA_PPSERROR    0x0800          /* PPS signal calibration error (ro) */
+#define STA_CLOCKERR    0x1000          /* clock hardware fault (ro) */
+#define STA_NANO        0x2000          /* resolution (0 = us, 1 = ns) (ro) */
+#define STA_MODE        0x4000          /* mode (0 = PLL, 1 = FLL) (ro) */
+#define STA_CLK         0x8000          /* clock source (0 = A, 1 = B) (ro) */
+
+#define STA_RONLY (STA_PPSSIGNAL | STA_PPSJITTER | STA_PPSWANDER | \
+    STA_PPSERROR | STA_CLOCKERR | STA_NANO | STA_MODE | STA_CLK)
+
+#define STA_SUPPORTED (STA_PLL | STA_FLL | STA_UNSYNC | STA_FREQHOLD | \
+    STA_CLOCKERR | STA_NANO | STA_MODE | STA_CLK)
+
+/*
+ * Clock states (ntptimeval.time_state)
+ */
+#define TIME_OK         0               /* no leap second warning */
+#define TIME_INS        1               /* insert leap second warning */
+#define TIME_DEL        2               /* delete leap second warning */
+#define TIME_OOP        3               /* leap second in progress */
+#define TIME_WAIT       4               /* leap second has occurred */
+#define TIME_ERROR      5               /* error (see status word) */
+
+/*
+ * NTP user interface -- ntp_gettime - used to read kernel clock values
+ */
+struct ntptimeval {
+	struct timespec time;           /* current time (ns) (ro) */
+	long maxerror;                  /* maximum error (us) (ro) */
+	long esterror;                  /* estimated error (us) (ro) */
+	long tai;                       /* TAI offset */
+	int time_state;                 /* time status */
+};
+
+/*
+ * NTP daemon interface -- ntp_adjtime -- used to discipline CPU clock
+ * oscillator and control/determine status.
+ *
+ * Note: The offset, precision and jitter members are in microseconds if
+ * STA_NANO is zero and nanoseconds if not.
+ */
+struct timex {
+	unsigned int modes;             /* clock mode bits (wo) */
+	long    offset;                 /* time offset (ns/us) (rw) */
+	long    freq;                   /* frequency offset (scaled PPM) (rw) */
+	long    maxerror;               /* maximum error (us) (rw) */
+	long    esterror;               /* estimated error (us) (rw) */
+	int     status;                 /* clock status bits (rw) */
+	long    constant;               /* poll interval (log2 s) (rw) */
+	long    precision;              /* clock precision (ns/us) (ro) */
+	long    tolerance;              /* clock frequency tolerance (scaled
+	                                 * PPM) (ro) */
+	/*
+	 * The following read-only structure members are used by
+	 * the PPS signal discipline that is currently not supported.
+	 * They are included for compatibility.
+	 */
+	long    ppsfreq;                /* PPS frequency (scaled PPM) (ro) */
+	long    jitter;                 /* PPS jitter (ns/us) (ro) */
+	int     shift;                  /* interval duration (s) (shift) (ro) */
+	long    stabil;                 /* PPS stability (scaled PPM) (ro) */
+	long    jitcnt;                 /* jitter limit exceeded (ro) */
+	long    calcnt;                 /* calibration intervals (ro) */
+	long    errcnt;                 /* calibration errors (ro) */
+	long    stbcnt;                 /* stability limit exceeded (ro) */
+};
+
+#include <sys/cdefs.h>
+
+__BEGIN_DECLS
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+int     ntp_adjtime(struct timex *);
+int     ntp_gettime(struct ntptimeval *);
+#endif /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
+__END_DECLS
+
+
+#endif /* !_SYS_TIMEX_H_ */
\ No newline at end of file
lib/libc/include/any-macos-any/libkern/OSKextLib.h → lib/libc/include/any-macos.12-any/libkern/OSKextLib.h
File renamed without changes
lib/libc/include/any-macos-any/sys/attr.h → lib/libc/include/any-macos.12-any/sys/attr.h
File renamed without changes
lib/libc/include/any-macos-any/xpc/availability.h → lib/libc/include/any-macos.12-any/xpc/availability.h
File renamed without changes
lib/libc/include/any-macos-any/unistd.h → lib/libc/include/any-macos.12-any/unistd.h
File renamed without changes
lib/libc/include/any-macos.13-any/libkern/OSKextLib.h
@@ -0,0 +1,572 @@
+/*
+ * Copyright (c) 2008 Apple 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@
+ */
+
+#ifndef _LIBKERN_OSKEXTLIB_H
+#define _LIBKERN_OSKEXTLIB_H
+
+#include <sys/cdefs.h>
+__BEGIN_DECLS
+
+#include <stdint.h>
+#include <mach/kmod.h>
+#include <mach/vm_types.h>
+#include <uuid/uuid.h>
+
+#include <libkern/OSReturn.h>
+
+/*!
+ * @header
+ *
+ * Declares functions, basic return values, and other constants
+ * related to kernel extensions (kexts).
+ */
+
+#if PRAGMA_MARK
+#pragma mark -
+/********************************************************************/
+#pragma mark OSReturn Values for Kernel Extensions
+/********************************************************************/
+#endif
+/*!
+ * @group OSReturn Values for Kernel Extensions
+ * Many kext-related functions return these values,
+ * as well as those defined under
+ * <code>@link //apple_ref/c/tdef/OSReturn OSReturn@/link</code>
+ * and other variants of <code>kern_return_t</code>.
+ */
+
+
+#define sub_libkern_kext           err_sub(2)
+#define libkern_kext_err(code)     (sys_libkern|sub_libkern_kext|(code))
+
+
+/*!
+ * @define   kOSKextReturnInternalError
+ * @abstract An internal error in the kext library.
+ *           Contrast with <code>@link //apple_ref/c/econst/OSReturnError
+ *           OSReturnError@/link</code>.
+ */
+#define kOSKextReturnInternalError                   libkern_kext_err(0x1)
+
+/*!
+ * @define   kOSKextReturnNoMemory
+ * @abstract Memory allocation failed.
+ */
+#define kOSKextReturnNoMemory                        libkern_kext_err(0x2)
+
+/*!
+ * @define   kOSKextReturnNoResources
+ * @abstract Some resource other than memory (such as available load tags)
+ *           is exhausted.
+ */
+#define kOSKextReturnNoResources                     libkern_kext_err(0x3)
+
+/*!
+ * @define   kOSKextReturnNotPrivileged
+ * @abstract The caller lacks privileges to perform the requested operation.
+ */
+#define kOSKextReturnNotPrivileged                   libkern_kext_err(0x4)
+
+/*!
+ * @define   kOSKextReturnInvalidArgument
+ * @abstract Invalid argument.
+ */
+#define kOSKextReturnInvalidArgument                 libkern_kext_err(0x5)
+
+/*!
+ * @define   kOSKextReturnNotFound
+ * @abstract Search item not found.
+ */
+#define kOSKextReturnNotFound                        libkern_kext_err(0x6)
+
+/*!
+ * @define   kOSKextReturnBadData
+ * @abstract Malformed data (not used for XML).
+ */
+#define kOSKextReturnBadData                         libkern_kext_err(0x7)
+
+/*!
+ * @define   kOSKextReturnSerialization
+ * @abstract Error converting or (un)serializing URL, string, or XML.
+ */
+#define kOSKextReturnSerialization                   libkern_kext_err(0x8)
+
+/*!
+ * @define   kOSKextReturnUnsupported
+ * @abstract Operation is no longer or not yet supported.
+ */
+#define kOSKextReturnUnsupported                     libkern_kext_err(0x9)
+
+/*!
+ * @define   kOSKextReturnDisabled
+ * @abstract Operation is currently disabled.
+ */
+#define kOSKextReturnDisabled                        libkern_kext_err(0xa)
+
+/*!
+ * @define   kOSKextReturnNotAKext
+ * @abstract Bundle is not a kernel extension.
+ */
+#define kOSKextReturnNotAKext                        libkern_kext_err(0xb)
+
+/*!
+ * @define   kOSKextReturnValidation
+ * @abstract Validation failures encountered; check diagnostics for details.
+ */
+#define kOSKextReturnValidation                      libkern_kext_err(0xc)
+
+/*!
+ * @define   kOSKextReturnAuthentication
+ * @abstract Authetication failures encountered; check diagnostics for details.
+ */
+#define kOSKextReturnAuthentication                  libkern_kext_err(0xd)
+
+/*!
+ * @define   kOSKextReturnDependencies
+ * @abstract Dependency resolution failures encountered; check diagnostics for details.
+ */
+#define kOSKextReturnDependencies                    libkern_kext_err(0xe)
+
+/*!
+ * @define   kOSKextReturnArchNotFound
+ * @abstract Kext does not contain code for the requested architecture.
+ */
+#define kOSKextReturnArchNotFound                    libkern_kext_err(0xf)
+
+/*!
+ * @define   kOSKextReturnCache
+ * @abstract An error occurred processing a system kext cache.
+ */
+#define kOSKextReturnCache                           libkern_kext_err(0x10)
+
+/*!
+ * @define   kOSKextReturnDeferred
+ * @abstract Operation has been posted asynchronously to user space (kernel only).
+ */
+#define kOSKextReturnDeferred                        libkern_kext_err(0x11)
+
+/*!
+ * @define   kOSKextReturnBootLevel
+ * @abstract Kext not loadable or operation not allowed at current boot level.
+ */
+#define kOSKextReturnBootLevel                       libkern_kext_err(0x12)
+
+/*!
+ * @define   kOSKextReturnNotLoadable
+ * @abstract Kext cannot be loaded; check diagnostics for details.
+ */
+#define kOSKextReturnNotLoadable                     libkern_kext_err(0x13)
+
+/*!
+ * @define   kOSKextReturnLoadedVersionDiffers
+ * @abstract A different version (or executable UUID, or executable by checksum)
+ *           of the requested kext is already loaded.
+ */
+#define kOSKextReturnLoadedVersionDiffers            libkern_kext_err(0x14)
+
+/*!
+ * @define   kOSKextReturnDependencyLoadError
+ * @abstract A load error occurred on a dependency of the kext being loaded.
+ */
+#define kOSKextReturnDependencyLoadError             libkern_kext_err(0x15)
+
+/*!
+ * @define   kOSKextReturnLinkError
+ * @abstract A link failure occured with this kext or a dependency.
+ */
+#define kOSKextReturnLinkError                       libkern_kext_err(0x16)
+
+/*!
+ * @define   kOSKextReturnStartStopError
+ * @abstract The kext start or stop routine returned an error.
+ */
+#define kOSKextReturnStartStopError                  libkern_kext_err(0x17)
+
+/*!
+ * @define   kOSKextReturnInUse
+ * @abstract The kext is currently in use or has outstanding references,
+ *           and cannot be unloaded.
+ */
+#define kOSKextReturnInUse                           libkern_kext_err(0x18)
+
+/*!
+ * @define   kOSKextReturnTimeout
+ * @abstract A kext request has timed out.
+ */
+#define kOSKextReturnTimeout                         libkern_kext_err(0x19)
+
+/*!
+ * @define   kOSKextReturnStopping
+ * @abstract The kext is in the process of stopping; requests cannot be made.
+ */
+#define kOSKextReturnStopping                        libkern_kext_err(0x1a)
+
+/*!
+ * @define   kOSKextReturnSystemPolicy
+ * @abstract The kext was prevented from loading due to system policy.
+ */
+#define kOSKextReturnSystemPolicy                    libkern_kext_err(0x1b)
+
+/*!
+ * @define   kOSKextReturnKCLoadFailure
+ * @abstract Loading of the System KC failed
+ */
+#define kOSKextReturnKCLoadFailure                  libkern_kext_err(0x1c)
+
+/*!
+ * @define   kOSKextReturnKCLoadFailureSystemKC
+ * @abstract Loading of the System KC failed
+ *
+ * This a sub-code of kOSKextReturnKCLoadFailure. It can be OR'd together
+ * with: kOSKextReturnKCLoadFailureAuxKC
+ *
+ * If both the System and Aux KCs fail to load, then the error code will be:
+ * libkern_kext_err(0x1f)
+ */
+#define kOSKextReturnKCLoadFailureSystemKC          libkern_kext_err(0x1d)
+
+/*!
+ * @define   kOSKextReturnKCLoadFailureAuxKC
+ * @abstract Loading of the Aux KC failed
+ *
+ * This a sub-code of kOSKextReturnKCLoadFailure. It can be OR'd together
+ * with: kOSKextReturnKCLoadFailureSystemKC
+ *
+ * If both the System and Aux KCs fail to load, then the error code will be:
+ * libkern_kext_err(0x1f)
+ */
+#define kOSKextReturnKCLoadFailureAuxKC             libkern_kext_err(0x1e)
+
+/* next available error is: libkern_kext_err(0x20) */
+
+#if PRAGMA_MARK
+#pragma mark -
+/********************************************************************/
+#pragma mark Kext/OSBundle Property List Keys
+/********************************************************************/
+#endif
+/*!
+ * @group Kext Property List Keys
+ * These constants cover CFBundle properties defined for kernel extensions.
+ * Because they are used in the kernel, if you want to use one with
+ * CFBundle APIs you'll need to wrap it in a <code>CFSTR()</code> macro.
+ */
+
+
+/*!
+ * @define   kOSBundleCompatibleVersionKey
+ * @abstract A string giving the backwards-compatible version of a library kext
+ *           in extended Mac OS 'vers' format (####.##.##s{1-255} where 's'
+ *           is a build stage 'd', 'a', 'b', 'f' or 'fc').
+ */
+#define kOSBundleCompatibleVersionKey           "OSBundleCompatibleVersion"
+
+/*!
+ * @define   kOSBundleEnableKextLoggingKey
+ * @abstract Set to true to have the kernel kext logging spec applied
+ *           to the kext.
+ *           See <code>@link //apple_ref/c/econst/OSKextLogSpec
+ *           OSKextLogSpec@/link</code>.
+ */
+#define kOSBundleEnableKextLoggingKey           "OSBundleEnableKextLogging"
+
+/*!
+ * @define   kOSBundleIsInterfaceKey
+ * @abstract A boolean value indicating whether the kext executable
+ *           contains only symbol references.
+ */
+#define kOSBundleIsInterfaceKey                 "OSBundleIsInterface"
+
+/*!
+ * @define   kOSBundleLibrariesKey
+ * @abstract A dictionary listing link dependencies for this kext.
+ *           Keys are bundle identifiers, values are version strings.
+ */
+#define kOSBundleLibrariesKey                   "OSBundleLibraries"
+
+/*!
+ * @define   kOSBundleRequiredKey
+ * @abstract A string indicating in which kinds of startup this kext
+ *           may need to load during early startup (before
+ *           <code>@link //apple_ref/doc/man/8/kextd kextcache(8)@/link</code>).
+ * @discussion
+ * The value is one of:
+ * <ul>
+ * <li>@link kOSBundleRequiredRoot "OSBundleRequiredRoot"@/link</li>
+ * <li>@link kOSBundleRequiredLocalRoot "OSBundleRequiredLocalRoot"@/link</li>
+ * <li>@link kOSBundleRequiredNetworkRoot "OSBundleRequiredNetworkRoot"@/link</li>
+ * <li>@link kOSBundleRequiredSafeBoot "OSBundleRequiredSafeBoot"@/link</li>
+ * <li>@link kOSBundleRequiredConsole "OSBundleRequiredConsole"@/link</li>
+ * </ul>
+ *
+ * Use this property judiciously.
+ * Every kext that declares a value other than "OSBundleRequiredSafeBoot"
+ * increases startup time, as the booter must read it into memory,
+ * or startup kext caches must include it.
+ */
+#define kOSBundleRequiredKey                    "OSBundleRequired"
+
+/*!
+ * @define   kOSBundleRequireExplicitLoadKey
+ * @abstract A boolean value indicating whether the kext requires an
+ *           explicit kextload in order to start/match.
+ */
+#define kOSBundleRequireExplicitLoadKey         "OSBundleRequireExplicitLoad"
+
+/*!
+ * @define   kOSBundleAllowUserLoadKey
+ * @abstract A boolean value indicating whether
+ *           <code>@link //apple_ref/doc/man/8/kextd kextcache(8)@/link</code>
+ *           will honor a non-root process's request to load a kext.
+ * @discussion
+ * See <code>@link //apple_ref/doc/compositePage/c/func/KextManagerLoadKextWithURL
+ * KextManagerLoadKextWithURL@/link</code>
+ * and <code>@link //apple_ref/doc/compositePage/c/func/KextManagerLoadKextWithIdentifier
+ * KextManagerLoadKextWithIdentifier@/link</code>.
+ */
+#define kOSBundleAllowUserLoadKey               "OSBundleAllowUserLoad"
+
+/*!
+ * @define   kOSBundleAllowUserTerminateKey
+ * @abstract A boolean value indicating whether the kextunload tool
+ *           is allowed to issue IOService terminate to classes defined in this kext.
+ * @discussion A boolean value indicating whether the kextunload tool
+ *           is allowed to issue IOService terminate to classes defined in this kext.
+ */
+#define kOSBundleAllowUserTerminateKey          "OSBundleAllowUserTerminate"
+
+/*!
+ * @define   kOSKernelResourceKey
+ * @abstract A boolean value indicating whether the kext represents a built-in
+ *           component of the kernel.
+ */
+#define kOSKernelResourceKey                    "OSKernelResource"
+
+/*!
+ * @define   kOSKextVariantOverrideKey
+ * @abstract A dictionary with target names as key and a target-specific variant
+ *           name as value.
+ */
+#define kOSKextVariantOverrideKey               "OSKextVariantOverride"
+
+/*!
+ * @define   kIOKitPersonalitiesKey
+ * @abstract A dictionary of dictionaries used in matching for I/O Kit drivers.
+ */
+#define kIOKitPersonalitiesKey                  "IOKitPersonalities"
+
+/*
+ * @define   kIOPersonalityPublisherKey
+ * @abstract Used in personalities sent to the I/O Kit,
+ *           contains the CFBundleIdentifier of the kext
+ *           that the personality originated in.
+ */
+#define kIOPersonalityPublisherKey              "IOPersonalityPublisher"
+
+#if CONFIG_KEC_FIPS
+/*
+ * @define   kAppleTextHashesKey
+ * @abstract A dictionary conataining hashes for corecrypto kext.
+ */
+#define kAppleTextHashesKey                     "AppleTextHashes"
+#endif
+
+/*!
+ * @define   kOSMutableSegmentCopy
+ * @abstract A boolean value indicating whether the kext requires a copy of
+ *           its mutable segments to be kept in memory, and then reset when the kext
+ *           unloads. This should be used with caution as it will increase the
+ *           amount of memory used by the kext.
+ */
+#define kOSMutableSegmentCopy                   "OSMutableSegmentCopy"
+
+
+#if PRAGMA_MARK
+/********************************************************************/
+#pragma mark Kext/OSBundle Property Deprecated Keys
+/********************************************************************/
+#endif
+/*
+ * @define   kOSBundleDebugLevelKey
+ * @abstract
+ * Deprecated (used on some releases of Mac OS X prior to 10.6 Snow Leopard).
+ * Value is an integer from 1-6, corresponding to the verbose levels
+ * of kext tools on those releases.
+ * On 10.6 Snow Leopard, use <code>@link OSKextEnableKextLogging
+ * OSKextEnableKextLogging@/link</code>.
+ */
+#define kOSBundleDebugLevelKey                  "OSBundleDebugLevel"
+
+/*!
+ * @define   kOSBundleSharedExecutableIdentifierKey
+ * @abstract Deprecated (used on some releases of Mac OS X
+ *           prior to 10.6 Snow Leopard).
+ *           Value is the bundle identifier of the pseudokext
+ *           that contains an executable shared by this kext.
+ */
+#define kOSBundleSharedExecutableIdentifierKey  "OSBundleSharedExecutableIdentifier"
+
+
+#if PRAGMA_MARK
+/********************************************************************/
+#pragma mark Kext/OSBundle Property List Values
+/********************************************************************/
+#endif
+
+/*!
+ * @group Kext Property List Values
+ * These constants encompass established values
+ * for kernel extension bundle properties.
+ */
+
+/*!
+ * @define   kOSKextKernelIdentifier
+ * @abstract
+ * This is the CFBundleIdentifier user for the kernel itself.
+ */
+#define kOSKextKernelIdentifier                 "__kernel__"
+
+
+/*!
+ * @define  kOSKextBundlePackageTypeKext
+ * @abstract
+ * The bundle type value for Kernel Extensions.
+ */
+#define kOSKextBundlePackageTypeKext        "KEXT"
+
+/*!
+ * @define  kOSKextBundlePackageTypeDriverKit
+ * @abstract
+ * The bundle type value for Driver Extensions.
+ */
+#define kOSKextBundlePackageTypeDriverKit   "DEXT"
+
+/*!
+ * @define   kOSBundleRequiredRoot
+ * @abstract
+ * This <code>@link kOSBundleRequiredKey OSBundleRequired@/link</code>
+ * value indicates that the kext may be needed to mount the root filesystem
+ * whether starting from a local or a network volume.
+ */
+#define kOSBundleRequiredRoot                   "Root"
+
+/*!
+ * @define   kOSBundleRequiredLocalRoot
+ * @abstract
+ * This <code>@link kOSBundleRequiredKey OSBundleRequired@/link</code>
+ * value indicates that the kext may be needed to mount the root filesystem
+ * when starting from a local disk.
+ */
+#define kOSBundleRequiredLocalRoot              "Local-Root"
+
+/*!
+ * @define   kOSBundleRequiredNetworkRoot
+ * @abstract
+ * This <code>@link kOSBundleRequiredKey OSBundleRequired@/link</code>
+ * value indicates that the kext may be needed to mount the root filesystem
+ * when starting over a network connection.
+ */
+#define kOSBundleRequiredNetworkRoot            "Network-Root"
+
+/*!
+ * @define   kOSBundleRequiredSafeBoot
+ * @abstract
+ * This <code>@link kOSBundleRequiredKey OSBundleRequired@/link</code>
+ * value indicates that the kext can be loaded during a safe startup.
+ * This value does not normally cause the kext to be read by the booter
+ * or included in startup kext caches.
+ */
+#define kOSBundleRequiredSafeBoot               "Safe Boot"
+
+/*!
+ * @define   kOSBundleRequiredConsole
+ * @abstract
+ * This <code>@link kOSBundleRequiredKey OSBundleRequired@/link</code>
+ * value indicates that the kext may be needed for console access
+ * (specifically in a single-user startup when
+ * <code>@link //apple_ref/doc/man/8/kextd kextd(8)@/link</code>.
+ * does not run)
+ * and should be loaded during early startup.
+ */
+#define kOSBundleRequiredConsole                "Console"
+
+/*!
+ * @define   kOSBundleRequiredDriverKit
+ * @abstract
+ * This <code>@link kOSBundleRequiredKey OSBundleRequired@/link</code>
+ * value indicates that the driver extension's (DriverKit driver's)
+ * personalities must be present in the kernel at early boot (specifically
+ * before <code>@link //apple_ref/doc/man/8/kextd kextd(8)@/link</code> starts)
+ * in order to compete with kexts built into the prelinkedkernel. Note that
+ * kextd is still required to launch the user space driver binary. The IOKit
+ * matching will happen during early boot, and the actual driver launch
+ * will happen after kextd starts.
+ */
+#define kOSBundleRequiredDriverKit              "DriverKit"
+
+#if PRAGMA_MARK
+#pragma mark -
+/********************************************************************/
+#pragma mark Kext Information
+/********************************************************************/
+#endif
+/*!
+ * @group Kext Information
+ * Types, constants, and macros providing a kext with information
+ * about itself.
+ */
+
+/*!
+ * @typedef OSKextLoadTag
+ *
+ * @abstract
+ * A unique identifier assigned to a loaded instanace of a kext.
+ *
+ * @discussion
+ * If a kext is unloaded and later reloaded, the new instance
+ * has a different load tag.
+ *
+ * A kext can get its own load tag in the <code>kmod_info_t</code>
+ * structure passed into its module start routine, as the
+ * <code>id</code> field (cast to this type).
+ */
+typedef uint32_t  OSKextLoadTag;
+
+/*!
+ * @define kOSKextInvalidLoadTag
+ *
+ * @abstract
+ * A load tag value that will never be used for a loaded kext;
+ * indicates kext not found.
+ */
+#define  kOSKextInvalidLoadTag  ((OSKextLoadTag)(-1))
+
+
+__END_DECLS
+
+#endif /* _LIBKERN_OSKEXTLIB_H */
\ No newline at end of file
lib/libc/include/any-macos.13-any/mach/mach_host.h
@@ -297,7 +297,7 @@ extern
 #endif	/* mig_external */
 kern_return_t mach_zone_info
 (
-	host_priv_t host,
+	mach_port_t host,
 	mach_zone_name_array_t *names,
 	mach_msg_type_number_t *namesCnt,
 	mach_zone_info_array_t *info,
@@ -385,7 +385,7 @@ extern
 #endif	/* mig_external */
 kern_return_t mach_memory_info
 (
-	host_priv_t host,
+	mach_port_t host,
 	mach_zone_name_array_t *names,
 	mach_msg_type_number_t *namesCnt,
 	mach_zone_info_array_t *info,
lib/libc/include/any-macos.13-any/mach/mach_types.h
@@ -217,8 +217,12 @@ typedef clock_ctrl_t            clock_ctrl_port_t;
 typedef exception_handler_t     exception_port_t;
 typedef exception_handler_array_t exception_port_arrary_t;
 typedef char vfs_path_t[4096];
-typedef char nspace_path_t[1024]; /* 1024 == PATH_MAX */
-typedef char nspace_name_t[1024]; /* 1024 == PATH_MAX */
+/*
+ * 8K, c.f. FSGETPATH_MAXBUFLEN in bsd/vfs/vfs_syscalls.c.
+ * These types should NEVER be allocated on the stack.
+ */
+typedef char nspace_path_t[8192];
+typedef char nspace_name_t[8192];
 
 #define TASK_NULL               ((task_t) 0)
 #define TASK_NAME_NULL          ((task_name_t) 0)
lib/libc/include/any-macos.13-any/mach/port.h
@@ -400,6 +400,7 @@ enum mach_port_guard_exception_codes {
 	kGUARD_EXC_MOD_REFS                  = 2,
 	kGUARD_EXC_INVALID_OPTIONS           = 3,
 	kGUARD_EXC_SET_CONTEXT               = 4,
+	kGUARD_EXC_THREAD_SET_STATE          = 5,
 	kGUARD_EXC_UNGUARDED                 = 1u << 3,
 	kGUARD_EXC_INCORRECT_GUARD           = 1u << 4,
 	kGUARD_EXC_IMMOVABLE                 = 1u << 5,
lib/libc/include/any-macos.13-any/mach/vm_statistics.h
@@ -284,11 +284,12 @@ typedef struct vm_purgeable_info        *vm_purgeable_info_t;
 #define VM_FLAGS_RETURN_4K_DATA_ADDR    0x00800000 /* Return 4K aligned address of target data */
 #define VM_FLAGS_ALIAS_MASK             0xFF000000
 #define VM_GET_FLAGS_ALIAS(flags, alias)                        \
-	        (alias) = ((flags) & VM_FLAGS_ALIAS_MASK) >> 24
+	        (alias) = (((flags) >> 24) & 0xff)
 #define VM_SET_FLAGS_ALIAS(flags, alias)                        \
 	        (flags) = (((flags) & ~VM_FLAGS_ALIAS_MASK) |   \
 	        (((alias) & ~VM_FLAGS_ALIAS_MASK) << 24))
 
+
 /* These are the flags that we accept from user-space */
 #define VM_FLAGS_USER_ALLOCATE  (VM_FLAGS_FIXED |               \
 	                         VM_FLAGS_ANYWHERE |            \
@@ -301,9 +302,11 @@ typedef struct vm_purgeable_info        *vm_purgeable_info_t;
 	                         VM_FLAGS_SUPERPAGE_MASK |      \
 	                         VM_FLAGS_TPRO |                \
 	                         VM_FLAGS_ALIAS_MASK)
+
 #define VM_FLAGS_USER_MAP       (VM_FLAGS_USER_ALLOCATE |       \
 	                         VM_FLAGS_RETURN_4K_DATA_ADDR | \
 	                         VM_FLAGS_RETURN_DATA_ADDR)
+
 #define VM_FLAGS_USER_REMAP     (VM_FLAGS_FIXED |               \
 	                         VM_FLAGS_ANYWHERE |            \
 	                         VM_FLAGS_RANDOM_ADDR |         \
lib/libc/include/any-macos.13-any/mach/vm_types.h
@@ -66,7 +66,7 @@ typedef uint32_t        reg64_t;
  * addresses (that are page aligned) as 32-bit page numbers.
  * This limits the physical address space to 16TB of RAM.
  */
-typedef uint32_t ppnum_t;               /* Physical page number */
+typedef uint32_t ppnum_t __kernel_ptr_semantics; /* Physical page number */
 #define PPNUM_MAX UINT32_MAX
 
 
lib/libc/include/any-macos.13-any/mach-o/arm64/reloc.h
@@ -0,0 +1,254 @@
+/*
+ * Copyright (c) 2010 Apple Computer, Inc. All rights reserved.
+ *
+ * @APPLE_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. 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_LICENSE_HEADER_END@
+ */
+
+#ifndef _MACHO_ARM64_RELOC_H_
+#define _MACHO_ARM64_RELOC_H_
+
+/*
+ * Relocations for arm64 are a bit different than for other architectures in
+ * Mach-O: Scattered relocations are not used.  Almost all relocations produced
+ * by the compiler are external relocations.  An external relocation has the
+ * r_extern bit set to 1 and the r_symbolnum field contains the symbol table
+ * index of the target label.
+ *
+ * When the assembler is generating relocations, if the target label is a local
+ * label (begins with 'L'), then the previous non-local label in the same
+ * section is used as the target of the external relocation.  An addend is used
+ * with the distance from that non-local label to the target label.  Only when
+ * there is no previous non-local label in the section is an internal
+ * relocation used.
+ *
+ * The addend (i.e. the 4 in _foo+4) is encoded either in the instruction or
+ * in the r_symbolnum of ARM64_RELOC_ADDEND.
+ * For ARM64_RELOC_UNSIGNED and ARM64_RELOC_AUTHENTICATED_POINTER, the addend
+ * is stored in the instruction.  ARM64_RELOC_PAGE21, ARM64_RELOC_PAGEOFF12 and
+ * ARM64_RELOC_BRANCH26 must be preceded by an ARM64_RELOC_ADDEND if they need
+ * an addend.  No other relocations support addends.
+ *
+ * The relocation types are:
+ *
+ *     ARM64_RELOC_UNSIGNED                 // For pointer sized fixups
+ *     ARM64_RELOC_SUBTRACTOR               // must be followed by a ARM64_RELOC_UNSIGNED
+ *     ARM64_RELOC_BRANCH26                 // a BL instruction with pc-relative +-128MB displacement
+ *     ARM64_RELOC_PAGE21                   // pc-rel distance to page of target
+ *     ARM64_RELOC_PAGEOFF12                // offset within page, scaled by r_length
+ *     ARM64_RELOC_GOT_LOAD_PAGE21          // load with a pc-rel distance to page of a GOT entry
+ *     ARM64_RELOC_GOT_LOAD_PAGEOFF12       // load with an offset within page, scaled by r_length, of GOT entry
+ *     ARM64_RELOC_POINTER_TO_GOT           // 32-bit pc-rel (or 64-bit absolute) offset to a GOT entry
+ *     ARM64_RELOC_TLVP_LOAD_PAGE21         // tlv load with a pc-rel distance to page of a GOT entry
+ *     ARM64_RELOC_TLVP_LOAD_PAGEOFF12      // tlv load with an offset within page, scaled by r_length, of GOT entry
+ *     ARM64_RELOC_ADDEND                   // must be followed by ARM64_RELOC_BRANCH26/ARM64_RELOC_PAGE21/ARM64_RELOC_PAGEOFF12
+ *     ARM64_RELOC_AUTHENTICATED_POINTER    // 64-bit pointer with authentication
+ *
+ * The following are sample assembly instructions, followed by the relocation
+ * and section content they generate in an object file:
+ *
+ *     (arm64_32 only)
+ *     .long _foo
+ *         r_type=ARM64_RELOC_UNSIGNED, r_length=2, r_extern=1, r_pcrel=0, r_symbolnum=_foo
+ *         00 00 00 00
+ *
+ *     (arm64_32 only)
+ *     .long _foo + 4
+ *         r_type=ARM64_RELOC_UNSIGNED, r_length=2, r_extern=1, r_pcrel=0, r_symbolnum=_foo
+ *         04 00 00 00
+ *
+ *     .quad _foo
+ *         r_type=ARM64_RELOC_UNSIGNED, r_length=3, r_extern=1, r_pcrel=0, r_symbolnum=_foo
+ *         00 00 00 00 00 00 00 00
+ *
+ *     .quad _foo + 16
+ *         r_type=ARM64_RELOC_UNSIGNED, r_length=3, r_extern=1, r_pcrel=0, r_symbolnum=_foo
+ *         10 00 00 00 00 00 00 00
+ *
+ *     .quad L1
+ *         r_type=ARM64_RELOC_UNSIGNED, r_length=3, r_extern=1, r_pcrel=0, r_symbolnum=_prev
+ *         10 00 00 00 00 00 00 00
+ *         // assumes _prev is the first non-local label 0x10 bytes before L1
+ *         10 00 00 00 00 00 00 00
+ *
+ *     (arm64_32 only)
+ *     .long _foo - _bar
+ *         r_type=ARM64_RELOC_SUBTRACTOR, r_length=2, r_extern=1, r_pcrel=0, r_symbolnum=_bar
+ *         r_type=ARM64_RELOC_UNSIGNED, r_length=2, r_extern=1, r_pcrel=0, r_symbolnum=_foo
+ *         00 00 00 00
+ *
+ *     (arm64_32 only)
+ *     .long _foo - _bar + 4
+ *         r_type=ARM64_RELOC_SUBTRACTOR, r_length=2, r_extern=1, r_pcrel=0, r_symbolnum=_bar
+ *         r_type=ARM64_RELOC_UNSIGNED, r_length=2, r_extern=1, r_pcrel=0, r_symbolnum=_foo
+ *         04 00 00 00
+ *
+ *     .quad _foo - _bar
+ *         r_type=ARM64_RELOC_SUBTRACTOR, r_length=3, r_extern=1, r_pcrel=0, r_symbolnum=_bar
+ *         r_type=ARM64_RELOC_UNSIGNED, r_length=3, r_extern=1, r_pcrel=0, r_symbolnum=_foo
+ *         00 00 00 00 00 00 00 00
+ *
+ *     .quad _foo - _bar + 4
+ *         r_type=ARM64_RELOC_SUBTRACTOR, r_length=3, r_extern=1, r_pcrel=0, r_symbolnum=_bar
+ *         r_type=ARM64_RELOC_UNSIGNED, r_length=3, r_extern=1, r_pcrel=0, r_symbolnum=_foo
+ *         04 00 00 00 00 00 00 00
+ *
+ *     .long _foo - .
+ *         r_type=ARM64_RELOC_SUBTRACTOR, r_length=2, r_extern=1, r_pcrel=0, r_symbolnum=_prev
+ *         r_type=ARM64_RELOC_UNSIGNED, r_length=2, r_extern=1, r_pcrel=0, r_symbolnum=_foo
+ *         f8 ff ff ff
+ *         // assumes _prev is the first non-local label 0x8 bytes before this
+ *         // .quad
+ *
+ *     .long _foo - L1
+ *         r_type=ARM64_RELOC_SUBTRACTOR, r_length=2, r_extern=1, r_pcrel=0, r_symbolnum=_prev
+ *         r_type=ARM64_RELOC_UNSIGNED, r_length=2, r_extern=1, r_pcrel=0, r_symbolnum=_foo
+ *         f8 ff ff ff
+ *         // assumes _prev is the first non-local label 0x8 bytes before L1
+ *
+ *     .quad _foo - .
+ *         r_type=ARM64_RELOC_SUBTRACTOR, r_length=3, r_extern=1, r_pcrel=0, r_symbolnum=_prev
+ *         r_type=ARM64_RELOC_UNSIGNED, r_length=3, r_extern=1, r_pcrel=0, r_symbolnum=_foo
+ *         f8 ff ff ff ff ff ff ff
+ *         // assumes _prev is the first non-local label 0x8 bytes before this
+ *         // .quad
+ *
+ *     .quad _foo - L1
+ *         r_type=ARM64_RELOC_SUBTRACTOR, r_length=3, r_extern=1, r_pcrel=0, r_symbolnum=_prev
+ *         r_type=ARM64_RELOC_UNSIGNED, r_length=3, r_extern=1, r_pcrel=0, r_symbolnum=_foo
+ *         f8 ff ff ff ff ff ff ff
+ *         // assumes _prev is the first non-local label 0x8 bytes before L1
+ *
+ *     .long L1 - _prev
+ *         // No relocations.  This is an assembly time constant.
+ *         12 00 00 00 00 00 00 00
+ *         // assumes _prev is the first non-local label 0x12 bytes before L1
+ *
+ *     .quad L1 - _prev
+ *         // No relocations.  This is an assembly time constant.
+ *         12 00 00 00 00 00 00 00
+ *         // assumes _prev is the first non-local label 0x12 bytes before L1
+ *
+ *     bl _foo
+ *         r_type=ARM64_RELOC_BRANCH26, r_length=2, r_extern=1, r_pcrel=1, r_symbolnum=_foo
+ *         0x14000000
+ *
+ *     bl _foo + 4
+ *         r_type=ARM64_RELOC_ADDEND, r_length=2, r_extern=0, r_pcrel=0, r_symbolnum=0x000004
+ *         r_type=ARM64_RELOC_BRANCH26, r_length=2, r_extern=1, r_pcrel=1, r_symbolnum=_foo
+ *         0x14000000
+ *
+ *     adrp x0, _foo@PAGE
+ *         r_type=ARM64_RELOC_PAGE21, r_length=2, r_extern=1, r_pcrel=1, r_symbolnum=_foo
+ *         0x90000000
+ *
+ *     ldr x0, [x0, _foo@PAGEOFF]
+ *         r_type=ARM64_RELOC_PAGEOFF12, r_length=2, r_extern=1, r_pcrel=0, r_symbolnum=_foo
+ *         0xf9400000
+ *
+ *     adrp x0, _foo@PAGE + 0x24
+ *         r_type=ARM64_RELOC_ADDEND, r_length=2, r_extern=0, r_pcrel=0, r_symbolnum=0x000024
+ *         r_type=ARM64_RELOC_PAGE21, r_length=2, r_extern=1, r_pcrel=1, r_symbolnum=_foo
+ *         0x90000000
+ *
+ *     ldr x0, [x0, _foo@PAGEOFF + 0x24]
+ *         r_type=ARM64_RELOC_ADDEND, r_length=2, r_extern=0, r_pcrel=0, r_symbolnum=0x000024
+ *         r_type=ARM64_RELOC_PAGEOFF12, r_length=2, r_extern=1, r_pcrel=0, r_symbolnum=_foo
+ *         0xf9400000
+ *
+ *     adrp x0, _foo@GOTPAGE
+ *         r_type=ARM64_RELOC_GOT_LOAD_PAGE21, r_length=2, r_extern=1, r_pcrel=1, r_symbolnum=_foo
+ *         0x90000000
+ *
+ *     ldr x0, [x0, _foo@GOTPAGEOFF]
+ *         r_type=ARM64_RELOC_GOT_LOAD_PAGEOFF12, r_length=2, r_extern=1, r_pcrel=0, r_symbolnum=_foo
+ *         0xf9400000
+ *
+ *     adrp x0, _foo@TLVPPAGE
+ *         r_type=ARM64_RELOC_TLVP_LOAD_PAGE21, r_length=2, r_extern=1, r_pcrel=1, r_symbolnum=_foo
+ *         0x90000000
+ *
+ *     ldr x0, [x0, _foo@TLVPPAGEOFF]
+ *         r_type=ARM64_RELOC_TLVP_LOAD_PAGEOFF12, r_length=2, r_extern=1, r_pcrel=0, r_symbolnum=_foo
+ *         0xf9400000
+ *
+ *     .long _foo@GOT - .
+ *         r_type=ARM64_RELOC_POINTER_TO_GOT, r_length=2, r_extern=1, r_pcrel=1, r_symbolnum=_foo
+ *         00 00 00 00
+ *
+ *     (arm64_32 only)
+ *     .long _foo@GOT
+ *         r_type=ARM64_RELOC_POINTER_TO_GOT, r_length=2, r_extern=1, r_pcrel=0, r_symbolnum=_foo
+ *         00 00 00 00
+ *
+ *     .quad _foo@GOT
+ *         r_type=ARM64_RELOC_POINTER_TO_GOT, r_length=3, r_extern=1, r_pcrel=0, r_symbolnum=_foo
+ *         00 00 00 00 00 00 00 00
+ *
+ *     (arm64e only)
+ *     .quad _foo@AUTH(da,5,addr)
+ *         r_type=ARM64_RELOC_AUTHENTICATED_POINTER, r_length=3, r_extern=1, r_pcrel=0, r_symbolnum=_foo
+ *         00 00 00 00 05 00 05 80
+ *
+ *     (arm64e only)
+ *     .quad (_foo + 0x10)@AUTH(da,5,addr)
+ *         r_type=ARM64_RELOC_AUTHENTICATED_POINTER, r_length=3, r_extern=1, r_pcrel=0, r_symbolnum=_foo
+ *         10 00 00 00 05 00 05 80
+ *
+ *
+ */
+enum reloc_type_arm64
+{
+    ARM64_RELOC_UNSIGNED,	  // for pointers
+    ARM64_RELOC_SUBTRACTOR,       // must be followed by a ARM64_RELOC_UNSIGNED
+    ARM64_RELOC_BRANCH26,         // a B/BL instruction with 26-bit displacement
+    ARM64_RELOC_PAGE21,           // pc-rel distance to page of target
+    ARM64_RELOC_PAGEOFF12,        // offset within page, scaled by r_length
+    ARM64_RELOC_GOT_LOAD_PAGE21,  // pc-rel distance to page of GOT slot
+    ARM64_RELOC_GOT_LOAD_PAGEOFF12, // offset within page of GOT slot,
+                                    //  scaled by r_length
+    ARM64_RELOC_POINTER_TO_GOT,   // for pointers to GOT slots
+    ARM64_RELOC_TLVP_LOAD_PAGE21, // pc-rel distance to page of TLVP slot
+    ARM64_RELOC_TLVP_LOAD_PAGEOFF12, // offset within page of TLVP slot,
+                                     //  scaled by r_length
+    ARM64_RELOC_ADDEND,		  // must be followed by PAGE21 or PAGEOFF12
+
+    // An arm64e authenticated pointer.
+    //
+    // Represents a pointer to a symbol (like ARM64_RELOC_UNSIGNED).
+    // Additionally, the resulting pointer is signed.  The signature is
+    // specified in the target location: the addend is restricted to the lower
+    // 32 bits (instead of the full 64 bits for ARM64_RELOC_UNSIGNED):
+    //
+    //   |63|62|61-51|50-49|  48  |47     -     32|31  -  0|
+    //   | 1| 0|  0  | key | addr | discriminator | addend |
+    //
+    // The key is one of:
+    //   IA: 00 IB: 01
+    //   DA: 10 DB: 11
+    //
+    // The discriminator field is used as extra signature diversification.
+    //
+    // The addr field indicates whether the target address should be blended
+    // into the discriminator.
+    //
+    ARM64_RELOC_AUTHENTICATED_POINTER,
+};
+
+#endif /* #ifndef _MACHO_ARM64_RELOC_H_ */
\ No newline at end of file
lib/libc/include/any-macos.13-any/mach-o/compact_unwind_encoding.h
@@ -0,0 +1,532 @@
+//===----------------------------------------------------------------------===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//
+// Darwin's alternative to DWARF based unwind encodings.
+//
+//===----------------------------------------------------------------------===//
+
+
+#ifndef __COMPACT_UNWIND_ENCODING__
+#define __COMPACT_UNWIND_ENCODING__
+
+#include <stdint.h>
+
+//
+// Compilers can emit standard DWARF FDEs in the __TEXT,__eh_frame section
+// of object files. Or compilers can emit compact unwind information in
+// the __LD,__compact_unwind section.
+//
+// When the linker creates a final linked image, it will create a
+// __TEXT,__unwind_info section.  This section is a small and fast way for the
+// runtime to access unwind info for any given function.  If the compiler
+// emitted compact unwind info for the function, that compact unwind info will
+// be encoded in the __TEXT,__unwind_info section. If the compiler emitted
+// DWARF unwind info, the __TEXT,__unwind_info section will contain the offset
+// of the FDE in the __TEXT,__eh_frame section in the final linked image.
+//
+// Note: Previously, the linker would transform some DWARF unwind infos into
+//       compact unwind info.  But that is fragile and no longer done.
+
+
+//
+// The compact unwind endoding is a 32-bit value which encoded in an
+// architecture specific way, which registers to restore from where, and how
+// to unwind out of the function.
+//
+typedef uint32_t compact_unwind_encoding_t;
+
+
+// architecture independent bits
+enum {
+    UNWIND_IS_NOT_FUNCTION_START           = 0x80000000,
+    UNWIND_HAS_LSDA                        = 0x40000000,
+    UNWIND_PERSONALITY_MASK                = 0x30000000,
+};
+
+
+
+
+//
+// x86
+//
+// 1-bit: start
+// 1-bit: has lsda
+// 2-bit: personality index
+//
+// 4-bits: 0=old, 1=ebp based, 2=stack-imm, 3=stack-ind, 4=DWARF
+//  ebp based:
+//        15-bits (5*3-bits per reg) register permutation
+//        8-bits for stack offset
+//  frameless:
+//        8-bits stack size
+//        3-bits stack adjust
+//        3-bits register count
+//        10-bits register permutation
+//
+enum {
+    UNWIND_X86_MODE_MASK                         = 0x0F000000,
+    UNWIND_X86_MODE_EBP_FRAME                    = 0x01000000,
+    UNWIND_X86_MODE_STACK_IMMD                   = 0x02000000,
+    UNWIND_X86_MODE_STACK_IND                    = 0x03000000,
+    UNWIND_X86_MODE_DWARF                        = 0x04000000,
+
+    UNWIND_X86_EBP_FRAME_REGISTERS               = 0x00007FFF,
+    UNWIND_X86_EBP_FRAME_OFFSET                  = 0x00FF0000,
+
+    UNWIND_X86_FRAMELESS_STACK_SIZE              = 0x00FF0000,
+    UNWIND_X86_FRAMELESS_STACK_ADJUST            = 0x0000E000,
+    UNWIND_X86_FRAMELESS_STACK_REG_COUNT         = 0x00001C00,
+    UNWIND_X86_FRAMELESS_STACK_REG_PERMUTATION   = 0x000003FF,
+
+    UNWIND_X86_DWARF_SECTION_OFFSET              = 0x00FFFFFF,
+};
+
+enum {
+    UNWIND_X86_REG_NONE     = 0,
+    UNWIND_X86_REG_EBX      = 1,
+    UNWIND_X86_REG_ECX      = 2,
+    UNWIND_X86_REG_EDX      = 3,
+    UNWIND_X86_REG_EDI      = 4,
+    UNWIND_X86_REG_ESI      = 5,
+    UNWIND_X86_REG_EBP      = 6,
+};
+
+//
+// For x86 there are four modes for the compact unwind encoding:
+// UNWIND_X86_MODE_EBP_FRAME:
+//    EBP based frame where EBP is push on stack immediately after return address,
+//    then ESP is moved to EBP. Thus, to unwind ESP is restored with the current
+//    EPB value, then EBP is restored by popping off the stack, and the return
+//    is done by popping the stack once more into the pc.
+//    All non-volatile registers that need to be restored must have been saved
+//    in a small range in the stack that starts EBP-4 to EBP-1020.  The offset/4
+//    is encoded in the UNWIND_X86_EBP_FRAME_OFFSET bits.  The registers saved
+//    are encoded in the UNWIND_X86_EBP_FRAME_REGISTERS bits as five 3-bit entries.
+//    Each entry contains which register to restore.
+// UNWIND_X86_MODE_STACK_IMMD:
+//    A "frameless" (EBP not used as frame pointer) function with a small 
+//    constant stack size.  To return, a constant (encoded in the compact
+//    unwind encoding) is added to the ESP. Then the return is done by
+//    popping the stack into the pc.
+//    All non-volatile registers that need to be restored must have been saved
+//    on the stack immediately after the return address.  The stack_size/4 is
+//    encoded in the UNWIND_X86_FRAMELESS_STACK_SIZE (max stack size is 1024).
+//    The number of registers saved is encoded in UNWIND_X86_FRAMELESS_STACK_REG_COUNT.
+//    UNWIND_X86_FRAMELESS_STACK_REG_PERMUTATION constains which registers were
+//    saved and their order.
+// UNWIND_X86_MODE_STACK_IND:
+//    A "frameless" (EBP not used as frame pointer) function large constant 
+//    stack size.  This case is like the previous, except the stack size is too
+//    large to encode in the compact unwind encoding.  Instead it requires that 
+//    the function contains "subl $nnnnnnnn,ESP" in its prolog.  The compact 
+//    encoding contains the offset to the nnnnnnnn value in the function in
+//    UNWIND_X86_FRAMELESS_STACK_SIZE.  
+// UNWIND_X86_MODE_DWARF:
+//    No compact unwind encoding is available.  Instead the low 24-bits of the
+//    compact encoding is the offset of the DWARF FDE in the __eh_frame section.
+//    This mode is never used in object files.  It is only generated by the 
+//    linker in final linked images which have only DWARF unwind info for a
+//    function.
+//
+// The permutation encoding is a Lehmer code sequence encoded into a
+// single variable-base number so we can encode the ordering of up to
+// six registers in a 10-bit space.
+//
+// The following is the algorithm used to create the permutation encoding used
+// with frameless stacks.  It is passed the number of registers to be saved and
+// an array of the register numbers saved.
+//
+//uint32_t permute_encode(uint32_t registerCount, const uint32_t registers[6])
+//{
+//    uint32_t renumregs[6];
+//    for (int i=6-registerCount; i < 6; ++i) {
+//        int countless = 0;
+//        for (int j=6-registerCount; j < i; ++j) {
+//            if ( registers[j] < registers[i] )
+//                ++countless;
+//        }
+//        renumregs[i] = registers[i] - countless -1;
+//    }
+//    uint32_t permutationEncoding = 0;
+//    switch ( registerCount ) {
+//        case 6:
+//            permutationEncoding |= (120*renumregs[0] + 24*renumregs[1]
+//                                    + 6*renumregs[2] + 2*renumregs[3]
+//                                      + renumregs[4]);
+//            break;
+//        case 5:
+//            permutationEncoding |= (120*renumregs[1] + 24*renumregs[2]
+//                                    + 6*renumregs[3] + 2*renumregs[4]
+//                                      + renumregs[5]);
+//            break;
+//        case 4:
+//            permutationEncoding |= (60*renumregs[2] + 12*renumregs[3]
+//                                   + 3*renumregs[4] + renumregs[5]);
+//            break;
+//        case 3:
+//            permutationEncoding |= (20*renumregs[3] + 4*renumregs[4]
+//                                     + renumregs[5]);
+//            break;
+//        case 2:
+//            permutationEncoding |= (5*renumregs[4] + renumregs[5]);
+//            break;
+//        case 1:
+//            permutationEncoding |= (renumregs[5]);
+//            break;
+//    }
+//    return permutationEncoding;
+//}
+//
+
+
+
+
+//
+// x86_64
+//
+// 1-bit: start
+// 1-bit: has lsda
+// 2-bit: personality index
+//
+// 4-bits: 0=old, 1=rbp based, 2=stack-imm, 3=stack-ind, 4=DWARF
+//  rbp based:
+//        15-bits (5*3-bits per reg) register permutation
+//        8-bits for stack offset
+//  frameless:
+//        8-bits stack size
+//        3-bits stack adjust
+//        3-bits register count
+//        10-bits register permutation
+//
+enum {
+    UNWIND_X86_64_MODE_MASK                         = 0x0F000000,
+    UNWIND_X86_64_MODE_RBP_FRAME                    = 0x01000000,
+    UNWIND_X86_64_MODE_STACK_IMMD                   = 0x02000000,
+    UNWIND_X86_64_MODE_STACK_IND                    = 0x03000000,
+    UNWIND_X86_64_MODE_DWARF                        = 0x04000000,
+
+    UNWIND_X86_64_RBP_FRAME_REGISTERS               = 0x00007FFF,
+    UNWIND_X86_64_RBP_FRAME_OFFSET                  = 0x00FF0000,
+
+    UNWIND_X86_64_FRAMELESS_STACK_SIZE              = 0x00FF0000,
+    UNWIND_X86_64_FRAMELESS_STACK_ADJUST            = 0x0000E000,
+    UNWIND_X86_64_FRAMELESS_STACK_REG_COUNT         = 0x00001C00,
+    UNWIND_X86_64_FRAMELESS_STACK_REG_PERMUTATION   = 0x000003FF,
+
+    UNWIND_X86_64_DWARF_SECTION_OFFSET              = 0x00FFFFFF,
+};
+
+enum {
+    UNWIND_X86_64_REG_NONE       = 0,
+    UNWIND_X86_64_REG_RBX        = 1,
+    UNWIND_X86_64_REG_R12        = 2,
+    UNWIND_X86_64_REG_R13        = 3,
+    UNWIND_X86_64_REG_R14        = 4,
+    UNWIND_X86_64_REG_R15        = 5,
+    UNWIND_X86_64_REG_RBP        = 6,
+};
+//
+// For x86_64 there are four modes for the compact unwind encoding:
+// UNWIND_X86_64_MODE_RBP_FRAME:
+//    RBP based frame where RBP is push on stack immediately after return address,
+//    then RSP is moved to RBP. Thus, to unwind RSP is restored with the current 
+//    EPB value, then RBP is restored by popping off the stack, and the return 
+//    is done by popping the stack once more into the pc.
+//    All non-volatile registers that need to be restored must have been saved
+//    in a small range in the stack that starts RBP-8 to RBP-2040.  The offset/8 
+//    is encoded in the UNWIND_X86_64_RBP_FRAME_OFFSET bits.  The registers saved
+//    are encoded in the UNWIND_X86_64_RBP_FRAME_REGISTERS bits as five 3-bit entries.
+//    Each entry contains which register to restore.  
+// UNWIND_X86_64_MODE_STACK_IMMD:
+//    A "frameless" (RBP not used as frame pointer) function with a small 
+//    constant stack size.  To return, a constant (encoded in the compact 
+//    unwind encoding) is added to the RSP. Then the return is done by 
+//    popping the stack into the pc.
+//    All non-volatile registers that need to be restored must have been saved
+//    on the stack immediately after the return address.  The stack_size/8 is
+//    encoded in the UNWIND_X86_64_FRAMELESS_STACK_SIZE (max stack size is 2048).
+//    The number of registers saved is encoded in UNWIND_X86_64_FRAMELESS_STACK_REG_COUNT.
+//    UNWIND_X86_64_FRAMELESS_STACK_REG_PERMUTATION constains which registers were
+//    saved and their order.  
+// UNWIND_X86_64_MODE_STACK_IND:
+//    A "frameless" (RBP not used as frame pointer) function large constant 
+//    stack size.  This case is like the previous, except the stack size is too
+//    large to encode in the compact unwind encoding.  Instead it requires that 
+//    the function contains "subq $nnnnnnnn,RSP" in its prolog.  The compact 
+//    encoding contains the offset to the nnnnnnnn value in the function in
+//    UNWIND_X86_64_FRAMELESS_STACK_SIZE.  
+// UNWIND_X86_64_MODE_DWARF:
+//    No compact unwind encoding is available.  Instead the low 24-bits of the
+//    compact encoding is the offset of the DWARF FDE in the __eh_frame section.
+//    This mode is never used in object files.  It is only generated by the 
+//    linker in final linked images which have only DWARF unwind info for a
+//    function.
+//
+
+
+// ARM64
+//
+// 1-bit: start
+// 1-bit: has lsda
+// 2-bit: personality index
+//
+// 4-bits: 4=frame-based, 3=DWARF, 2=frameless
+//  frameless:
+//        12-bits of stack size
+//  frame-based:
+//        4-bits D reg pairs saved
+//        5-bits X reg pairs saved
+//  DWARF:
+//        24-bits offset of DWARF FDE in __eh_frame section
+//
+enum {
+    UNWIND_ARM64_MODE_MASK                     = 0x0F000000,
+    UNWIND_ARM64_MODE_FRAMELESS                = 0x02000000,
+    UNWIND_ARM64_MODE_DWARF                    = 0x03000000,
+    UNWIND_ARM64_MODE_FRAME                    = 0x04000000,
+
+    UNWIND_ARM64_FRAME_X19_X20_PAIR            = 0x00000001,
+    UNWIND_ARM64_FRAME_X21_X22_PAIR            = 0x00000002,
+    UNWIND_ARM64_FRAME_X23_X24_PAIR            = 0x00000004,
+    UNWIND_ARM64_FRAME_X25_X26_PAIR            = 0x00000008,
+    UNWIND_ARM64_FRAME_X27_X28_PAIR            = 0x00000010,
+    UNWIND_ARM64_FRAME_D8_D9_PAIR              = 0x00000100,
+    UNWIND_ARM64_FRAME_D10_D11_PAIR            = 0x00000200,
+    UNWIND_ARM64_FRAME_D12_D13_PAIR            = 0x00000400,
+    UNWIND_ARM64_FRAME_D14_D15_PAIR            = 0x00000800,
+
+    UNWIND_ARM64_FRAMELESS_STACK_SIZE_MASK     = 0x00FFF000,
+    UNWIND_ARM64_DWARF_SECTION_OFFSET          = 0x00FFFFFF,
+};
+// For arm64 there are three modes for the compact unwind encoding:
+// UNWIND_ARM64_MODE_FRAME:
+//    This is a standard arm64 prolog where FP/LR are immediately pushed on the
+//    stack, then SP is copied to FP. If there are any non-volatile registers
+//    saved, then are copied into the stack frame in pairs in a contiguous
+//    range right below the saved FP/LR pair.  Any subset of the five X pairs 
+//    and four D pairs can be saved, but the memory layout must be in register
+//    number order.  
+// UNWIND_ARM64_MODE_FRAMELESS:
+//    A "frameless" leaf function, where FP/LR are not saved. The return address 
+//    remains in LR throughout the function. If any non-volatile registers
+//    are saved, they must be pushed onto the stack before any stack space is
+//    allocated for local variables.  The stack sized (including any saved
+//    non-volatile registers) divided by 16 is encoded in the bits 
+//    UNWIND_ARM64_FRAMELESS_STACK_SIZE_MASK.
+// UNWIND_ARM64_MODE_DWARF:
+//    No compact unwind encoding is available.  Instead the low 24-bits of the
+//    compact encoding is the offset of the DWARF FDE in the __eh_frame section.
+//    This mode is never used in object files.  It is only generated by the 
+//    linker in final linked images which have only DWARF unwind info for a
+//    function.
+//
+
+
+#ifndef __OPEN_SOURCE__
+//
+// armv7k
+//
+// 1-bit: start
+// 1-bit: has lsda
+// 2-bit: personality index
+//
+// 4-bits: 1=frame, 2=frame+dregs, 4=dwarf
+//
+enum {
+  UNWIND_ARM_MODE_MASK                         = 0x0F000000,
+  UNWIND_ARM_MODE_FRAME                        = 0x01000000,
+  UNWIND_ARM_MODE_FRAME_D                      = 0x02000000,
+  UNWIND_ARM_MODE_DWARF                        = 0x04000000,
+
+  UNWIND_ARM_FRAME_STACK_ADJUST_MASK           = 0x00C00000,
+
+  UNWIND_ARM_FRAME_FIRST_PUSH_R4               = 0x00000001,
+  UNWIND_ARM_FRAME_FIRST_PUSH_R5               = 0x00000002,
+  UNWIND_ARM_FRAME_FIRST_PUSH_R6               = 0x00000004,
+
+  UNWIND_ARM_FRAME_SECOND_PUSH_R8              = 0x00000008,
+  UNWIND_ARM_FRAME_SECOND_PUSH_R9              = 0x00000010,
+  UNWIND_ARM_FRAME_SECOND_PUSH_R10             = 0x00000020,
+  UNWIND_ARM_FRAME_SECOND_PUSH_R11             = 0x00000040,
+  UNWIND_ARM_FRAME_SECOND_PUSH_R12             = 0x00000080,
+
+  UNWIND_ARM_FRAME_D_REG_COUNT_MASK            = 0x00000700,
+
+  UNWIND_ARM_DWARF_SECTION_OFFSET              = 0x00FFFFFF,
+};
+// For armv7k there are three modes for the compact unwind encoding:
+// UNWIND_ARM_MODE_FRAME:
+//    This is a standard arm prolog where lr/r7 are immediately pushed on the
+//    stack.  As part of that first push r4, r5, or r6 can be also pushed
+//    and if so the FIRST_PUSH bit is set in the compact unwind. Additionally
+//    there can be a second push multiple which can save r8 through r12.
+//    If that is used, the registers saved is recorded with a SECOND_PUSH bit.
+//    Lastly, for var-args support, the prolog may save r1, r2, r3 to the
+//    stack before the frame push.  If that is done the STACK_ADJUST_MASK
+//    records that the stack pointer must be adjust (e.g 0x00800000 means
+//    the stack pointer was adjusted 8 bytes down and the unwinder would
+//    need to add back 8 bytes to SP when unwinding through this function.
+// UNWIND_ARM_MODE_FRAME_D:
+//    This is the same as UNWIND_ARM_MODE_FRAME, except that additionally
+//    some D registers were saved.  The D_REG_COUNT_MASK contains which
+//    set if D registers were saved and where.  There are currently 8 (0-7)
+//    possible D register save patterns supported.
+// UNWIND_ARM_MODE_DWARF:
+//    No compact unwind encoding is available.  Instead the low 24-bits of the
+//    compact encoding is the offset of the dwarf FDE in the __eh_frame section.
+//    The offset only exists in final linked images. It is zero in object files.
+#endif
+
+
+
+
+
+////////////////////////////////////////////////////////////////////////////////
+//
+//  Relocatable Object Files: __LD,__compact_unwind
+//
+////////////////////////////////////////////////////////////////////////////////
+
+//
+// A compiler can generated compact unwind information for a function by adding
+// a "row" to the __LD,__compact_unwind section.  This section has the 
+// S_ATTR_DEBUG bit set, so the section will be ignored by older linkers. 
+// It is removed by the new linker, so never ends up in final executables. 
+// This section is a table, initially with one row per function (that needs 
+// unwind info).  The table columns and some conceptual entries are:
+//
+//     range-start               pointer to start of function/range
+//     range-length              
+//     compact-unwind-encoding   32-bit encoding  
+//     personality-function      or zero if no personality function
+//     lsda                      or zero if no LSDA data
+//
+// The length and encoding fields are 32-bits.  The other are all pointer sized. 
+//
+// In x86_64 assembly, these entry would look like:
+//
+//     .section __LD,__compact_unwind,regular,debug
+//
+//     #compact unwind for _foo
+//     .quad    _foo
+//     .set     L1,LfooEnd-_foo
+//     .long    L1
+//     .long    0x01010001
+//     .quad    0
+//     .quad    0
+//
+//     #compact unwind for _bar
+//     .quad    _bar
+//     .set     L2,LbarEnd-_bar
+//     .long    L2
+//     .long    0x01020011
+//     .quad    __gxx_personality
+//     .quad    except_tab1
+//
+//
+// Notes: There is no need for any labels in the the __compact_unwind section.  
+//        The use of the .set directive is to force the evaluation of the 
+//        range-length at assembly time, instead of generating relocations.
+//
+// To support future compiler optimizations where which non-volatile registers 
+// are saved changes within a function (e.g. delay saving non-volatiles until
+// necessary), there can by multiple lines in the __compact_unwind table for one
+// function, each with a different (non-overlapping) range and each with 
+// different compact unwind encodings that correspond to the non-volatiles 
+// saved at that range of the function.
+//
+// If a particular function is so wacky that there is no compact unwind way
+// to encode it, then the compiler can emit traditional DWARF unwind info.  
+// The runtime will use which ever is available.
+//
+// Runtime support for compact unwind encodings are only available on 10.6 
+// and later.  So, the compiler should not generate it when targeting pre-10.6. 
+
+
+
+
+////////////////////////////////////////////////////////////////////////////////
+//
+//  Final Linked Images: __TEXT,__unwind_info
+//
+////////////////////////////////////////////////////////////////////////////////
+
+//
+// The __TEXT,__unwind_info section is laid out for an efficient two level lookup.
+// The header of the section contains a coarse index that maps function address
+// to the page (4096 byte block) containing the unwind info for that function.  
+//
+
+#define UNWIND_SECTION_VERSION 1
+struct unwind_info_section_header
+{
+    uint32_t    version;            // UNWIND_SECTION_VERSION
+    uint32_t    commonEncodingsArraySectionOffset;
+    uint32_t    commonEncodingsArrayCount;
+    uint32_t    personalityArraySectionOffset;
+    uint32_t    personalityArrayCount;
+    uint32_t    indexSectionOffset;
+    uint32_t    indexCount;
+    // compact_unwind_encoding_t[]
+    // uint32_t personalities[]
+    // unwind_info_section_header_index_entry[]
+    // unwind_info_section_header_lsda_index_entry[]
+};
+
+struct unwind_info_section_header_index_entry
+{
+    uint32_t        functionOffset;
+    uint32_t        secondLevelPagesSectionOffset;  // section offset to start of regular or compress page
+    uint32_t        lsdaIndexArraySectionOffset;    // section offset to start of lsda_index array for this range
+};
+
+struct unwind_info_section_header_lsda_index_entry
+{
+    uint32_t        functionOffset;
+    uint32_t        lsdaOffset;
+};
+
+//
+// There are two kinds of second level index pages: regular and compressed.
+// A compressed page can hold up to 1021 entries, but it cannot be used
+// if too many different encoding types are used.  The regular page holds
+// 511 entries.
+//
+
+struct unwind_info_regular_second_level_entry
+{
+    uint32_t                    functionOffset;
+    compact_unwind_encoding_t    encoding;
+};
+
+#define UNWIND_SECOND_LEVEL_REGULAR 2
+struct unwind_info_regular_second_level_page_header
+{
+    uint32_t    kind;    // UNWIND_SECOND_LEVEL_REGULAR
+    uint16_t    entryPageOffset;
+    uint16_t    entryCount;
+    // entry array
+};
+
+#define UNWIND_SECOND_LEVEL_COMPRESSED 3
+struct unwind_info_compressed_second_level_page_header
+{
+    uint32_t    kind;    // UNWIND_SECOND_LEVEL_COMPRESSED
+    uint16_t    entryPageOffset;
+    uint16_t    entryCount;
+    uint16_t    encodingsPageOffset;
+    uint16_t    encodingsCount;
+    // 32-bit entry array
+    // encodings array
+};
+
+#define UNWIND_INFO_COMPRESSED_ENTRY_FUNC_OFFSET(entry)            (entry & 0x00FFFFFF)
+#define UNWIND_INFO_COMPRESSED_ENTRY_ENCODING_INDEX(entry)        ((entry >> 24) & 0xFF)
+
+
+
+#endif
\ No newline at end of file
lib/libc/include/any-macos.13-any/mach-o/fat.h
@@ -42,7 +42,10 @@
  * and contains the constants for the possible values of these types.
  */
 #include <stdint.h>
+
+#if __has_include(<mach/machine.h>)
 #include <mach/machine.h>
+#endif
 
 #if __has_include(<architecture/byte_order.h>)
 #include <architecture/byte_order.h>
@@ -57,8 +60,8 @@ struct fat_header {
 };
 
 struct fat_arch {
-	cpu_type_t	cputype;	/* cpu specifier (int) */
-	cpu_subtype_t	cpusubtype;	/* machine specifier (int) */
+	int32_t		cputype;	/* cpu specifier (int) */
+	int32_t		cpusubtype;	/* machine specifier (int) */
 	uint32_t	offset;		/* file offset to this object file */
 	uint32_t	size;		/* size of this object file */
 	uint32_t	align;		/* alignment as a power of 2 */
@@ -75,8 +78,8 @@ struct fat_arch {
 #define FAT_CIGAM_64	0xbfbafeca	/* NXSwapLong(FAT_MAGIC_64) */
 
 struct fat_arch_64 {
-	cpu_type_t	cputype;	/* cpu specifier (int) */
-	cpu_subtype_t	cpusubtype;	/* machine specifier (int) */
+	int32_t		cputype;	/* cpu specifier (int) */
+	int32_t		cpusubtype;	/* machine specifier (int) */
 	uint64_t	offset;		/* file offset to this object file */
 	uint64_t	size;		/* size of this object file */
 	uint32_t	align;		/* alignment as a power of 2 */
lib/libc/include/any-macos.13-any/net/if_var.h
@@ -75,6 +75,7 @@
 #endif
 
 
+
 #ifdef __APPLE__
 #define APPLE_IF_FAM_LOOPBACK  1
 #define APPLE_IF_FAM_ETHERNET  2
lib/libc/include/any-macos.13-any/objc/NSObject.h
@@ -0,0 +1,115 @@
+/*	NSObject.h
+	Copyright (c) 1994-2012, Apple Inc. All rights reserved.
+*/
+
+#ifndef _OBJC_NSOBJECT_H_
+#define _OBJC_NSOBJECT_H_
+
+#if __OBJC__
+
+#include <objc/objc.h>
+#include <objc/NSObjCRuntime.h>
+
+@class NSString, NSMethodSignature, NSInvocation;
+
+@protocol NSObject
+
+- (BOOL)isEqual:(id)object;
+@property (readonly) NSUInteger hash;
+
+@property (readonly) Class superclass;
+- (Class)class OBJC_SWIFT_UNAVAILABLE("use 'type(of: anObject)' instead");
+- (instancetype)self;
+
+- (id)performSelector:(SEL)aSelector;
+- (id)performSelector:(SEL)aSelector withObject:(id)object;
+- (id)performSelector:(SEL)aSelector withObject:(id)object1 withObject:(id)object2;
+
+- (BOOL)isProxy;
+
+- (BOOL)isKindOfClass:(Class)aClass;
+- (BOOL)isMemberOfClass:(Class)aClass;
+- (BOOL)conformsToProtocol:(Protocol *)aProtocol;
+
+- (BOOL)respondsToSelector:(SEL)aSelector;
+
+- (instancetype)retain OBJC_ARC_UNAVAILABLE;
+- (oneway void)release OBJC_ARC_UNAVAILABLE;
+- (instancetype)autorelease OBJC_ARC_UNAVAILABLE;
+- (NSUInteger)retainCount OBJC_ARC_UNAVAILABLE;
+
+- (struct _NSZone *)zone OBJC_ARC_UNAVAILABLE;
+
+@property (readonly, copy) NSString *description;
+@optional
+@property (readonly, copy) NSString *debugDescription;
+
+@end
+
+
+OBJC_AVAILABLE(10.0, 2.0, 9.0, 1.0, 2.0)
+OBJC_ROOT_CLASS
+OBJC_EXPORT
+@interface NSObject <NSObject> {
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wobjc-interface-ivars"
+    Class isa  OBJC_ISA_AVAILABILITY;
+#pragma clang diagnostic pop
+}
+
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wobjc-load-method"
++ (void)load;
+#pragma clang diagnostic pop
+
++ (void)initialize;
+- (instancetype)init
+#if NS_ENFORCE_NSOBJECT_DESIGNATED_INITIALIZER
+    NS_DESIGNATED_INITIALIZER
+#endif
+    ;
+
++ (instancetype)new OBJC_SWIFT_UNAVAILABLE("use object initializers instead");
++ (instancetype)allocWithZone:(struct _NSZone *)zone OBJC_SWIFT_UNAVAILABLE("use object initializers instead");
++ (instancetype)alloc OBJC_SWIFT_UNAVAILABLE("use object initializers instead");
+- (void)dealloc OBJC_SWIFT_UNAVAILABLE("use 'deinit' to define a de-initializer");
+
+- (void)finalize OBJC_DEPRECATED("Objective-C garbage collection is no longer supported");
+
+- (id)copy;
+- (id)mutableCopy;
+
++ (id)copyWithZone:(struct _NSZone *)zone OBJC_ARC_UNAVAILABLE;
++ (id)mutableCopyWithZone:(struct _NSZone *)zone OBJC_ARC_UNAVAILABLE;
+
++ (BOOL)instancesRespondToSelector:(SEL)aSelector;
++ (BOOL)conformsToProtocol:(Protocol *)protocol;
+- (IMP)methodForSelector:(SEL)aSelector;
++ (IMP)instanceMethodForSelector:(SEL)aSelector;
+- (void)doesNotRecognizeSelector:(SEL)aSelector;
+
+- (id)forwardingTargetForSelector:(SEL)aSelector OBJC_AVAILABLE(10.5, 2.0, 9.0, 1.0, 2.0);
+- (void)forwardInvocation:(NSInvocation *)anInvocation OBJC_SWIFT_UNAVAILABLE("");
+- (NSMethodSignature *)methodSignatureForSelector:(SEL)aSelector OBJC_SWIFT_UNAVAILABLE("");
+
++ (NSMethodSignature *)instanceMethodSignatureForSelector:(SEL)aSelector OBJC_SWIFT_UNAVAILABLE("");
+
+- (BOOL)allowsWeakReference UNAVAILABLE_ATTRIBUTE;
+- (BOOL)retainWeakReference UNAVAILABLE_ATTRIBUTE;
+
++ (BOOL)isSubclassOfClass:(Class)aClass;
+
++ (BOOL)resolveClassMethod:(SEL)sel OBJC_AVAILABLE(10.5, 2.0, 9.0, 1.0, 2.0);
++ (BOOL)resolveInstanceMethod:(SEL)sel OBJC_AVAILABLE(10.5, 2.0, 9.0, 1.0, 2.0);
+
++ (NSUInteger)hash;
++ (Class)superclass;
++ (Class)class OBJC_SWIFT_UNAVAILABLE("use 'aClass.self' instead");
++ (NSString *)description;
++ (NSString *)debugDescription;
+
+@end
+
+#endif
+
+#endif
\ No newline at end of file
lib/libc/include/any-macos.13-any/objc/runtime.h
@@ -542,7 +542,7 @@ class_getInstanceMethod(Class _Nullable cls, SEL _Nonnull name)
  * 
  * @return A pointer to the \c Method data structure that corresponds to the implementation of the 
  *  selector specified by aSelector for the class specified by aClass, or NULL if the specified 
- *  class or its superclasses do not contain an instance method with the specified selector.
+ *  class or its superclasses do not contain a class method with the specified selector.
  *
  * @note Note that this function searches superclasses for implementations, 
  *  whereas \c class_copyMethodList does not.
@@ -1898,6 +1898,17 @@ _objc_realizeClassFromSwift(Class _Nullable cls, void * _Nullable previously)
 
 struct objc_method_list;
 
+/* Used for testing only */
+
+OBJC_EXPORT void
+_objc_flush_caches(Class _Nullable cls) 
+    __OSX_DEPRECATED(10.0, 10.5, "not recommended")
+    __IOS_DEPRECATED(2.0, 2.0, "not recommended")
+    __TVOS_DEPRECATED(9.0, 9.0, "not recommended")
+    __WATCHOS_DEPRECATED(1.0, 1.0, "not recommended")
+
+;
+
 /* Obsolete functions */
 
 #if !0
@@ -1919,15 +1930,6 @@ class_respondsToMethod(Class _Nullable cls, SEL _Nonnull sel)
 
 ;
 
-OBJC_EXPORT void
-_objc_flush_caches(Class _Nullable cls) 
-    __OSX_DEPRECATED(10.0, 10.5, "not recommended")
-    __IOS_DEPRECATED(2.0, 2.0, "not recommended")
-    __TVOS_DEPRECATED(9.0, 9.0, "not recommended")
-    __WATCHOS_DEPRECATED(1.0, 1.0, "not recommended")
-
-;
-
 OBJC_EXPORT id _Nullable
 object_copyFromZone(id _Nullable anObject, size_t nBytes, void * _Nullable z) 
     OBJC_OSX_DEPRECATED_OTHERS_UNAVAILABLE(10.0, 10.5, "use object_copy instead");
lib/libc/include/any-macos.13-any/simd/simd.h
@@ -0,0 +1,30 @@
+/*  Copyright (c) 2014 Apple, Inc.  All rights reserved.
+ *
+ *  This header provides small vector (simd) and matrix types, and basic
+ *  arithmetic and mathematical functions for them.  The vast majority of these
+ *  operations are implemented as header inlines, as they can be performed
+ *  using just a few instructions on most processors.
+ *
+ *  These functions are broken into two groups; vector and matrix.  This header
+ *  includes all of them, but these may also be included separately.  Consult
+ *  these two headers for detailed documentation of what types and operations
+ *  are available.
+ */
+
+#ifndef __SIMD_HEADER__
+#define __SIMD_HEADER__
+
+#if __has_include(<realtime_safety/realtime_safety.h>)
+#include <realtime_safety/realtime_safety.h>
+REALTIME_SAFE_BEGIN
+#endif
+
+#include <simd/vector.h>
+#include <simd/matrix.h>
+#include <simd/quaternion.h>
+
+#if __has_include(<realtime_safety/realtime_safety.h>)
+REALTIME_SAFE_END
+#endif
+
+#endif
\ No newline at end of file
lib/libc/include/any-macos.13-any/sys/_symbol_aliasing.h
@@ -389,6 +389,18 @@
 #define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_16_2(x)
 #endif
 
+#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 160300
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_16_3(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_16_3(x)
+#endif
+
+#if defined(__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__ >= 160400
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_16_4(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_IPHONE___IPHONE_16_4(x)
+#endif
+
 #if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 1000
 #define __DARWIN_ALIAS_STARTING_MAC___MAC_10_0(x) x
 #else
@@ -645,4 +657,16 @@
 #define __DARWIN_ALIAS_STARTING_MAC___MAC_13_1(x) x
 #else
 #define __DARWIN_ALIAS_STARTING_MAC___MAC_13_1(x)
+#endif
+
+#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 130200
+#define __DARWIN_ALIAS_STARTING_MAC___MAC_13_2(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_MAC___MAC_13_2(x)
+#endif
+
+#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 130300
+#define __DARWIN_ALIAS_STARTING_MAC___MAC_13_3(x) x
+#else
+#define __DARWIN_ALIAS_STARTING_MAC___MAC_13_3(x)
 #endif
\ No newline at end of file
lib/libc/include/any-macos.13-any/sys/attr.h
@@ -0,0 +1,594 @@
+/*
+ * Copyright (c) 2000-2018 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@
+ */
+
+/*
+ * attr.h - attribute data structures and interfaces
+ *
+ * Copyright (c) 1998, Apple Computer, Inc.  All Rights Reserved.
+ */
+
+#ifndef _SYS_ATTR_H_
+#define _SYS_ATTR_H_
+
+#include <sys/appleapiopts.h>
+
+#ifdef __APPLE_API_UNSTABLE
+#include <sys/types.h>
+#include <sys/ucred.h>
+#include <sys/time.h>
+#include <sys/cdefs.h>
+
+#define FSOPT_NOFOLLOW          0x00000001
+#define FSOPT_NOINMEMUPDATE     0x00000002
+#define FSOPT_REPORT_FULLSIZE   0x00000004
+/* The following option only valid when requesting ATTR_CMN_RETURNED_ATTRS */
+#define FSOPT_PACK_INVAL_ATTRS  0x00000008
+
+
+#define FSOPT_ATTR_CMN_EXTENDED 0x00000020
+#define FSOPT_RETURN_REALDEV     0x00000200
+#define FSOPT_NOFOLLOW_ANY       0x00000800
+
+/* we currently aren't anywhere near this amount for a valid
+ * fssearchblock.sizeofsearchparams1 or fssearchblock.sizeofsearchparams2
+ * but we put a sanity check in to avoid abuse of the value passed in from
+ * user land.
+ */
+#define SEARCHFS_MAX_SEARCHPARMS  4096
+
+typedef u_int32_t text_encoding_t;
+
+typedef u_int32_t fsobj_type_t;
+
+typedef u_int32_t fsobj_tag_t;
+
+typedef u_int32_t fsfile_type_t;
+
+typedef u_int32_t fsvolid_t;
+
+#include <sys/_types/_fsobj_id_t.h> /* file object id type */
+
+typedef u_int32_t attrgroup_t;
+
+struct attrlist {
+	u_short bitmapcount;                    /* number of attr. bit sets in list (should be 5) */
+	u_int16_t reserved;                     /* (to maintain 4-byte alignment) */
+	attrgroup_t commonattr;                 /* common attribute group */
+	attrgroup_t volattr;                    /* Volume attribute group */
+	attrgroup_t dirattr;                    /* directory attribute group */
+	attrgroup_t fileattr;                   /* file attribute group */
+	attrgroup_t forkattr;                   /* fork attribute group */
+};
+
+#define ATTR_BIT_MAP_COUNT 5
+
+typedef struct attribute_set {
+	attrgroup_t commonattr;                 /* common attribute group */
+	attrgroup_t volattr;                    /* Volume attribute group */
+	attrgroup_t dirattr;                    /* directory attribute group */
+	attrgroup_t fileattr;                   /* file attribute group */
+	attrgroup_t forkattr;                   /* fork attribute group */
+} attribute_set_t;
+
+#define ATTRIBUTE_SET_INIT(a)               do {(a)->commonattr = (a)->volattr = (a)->dirattr = (a)->fileattr = (a)->forkattr = 0; } while(0)
+
+
+typedef struct attrreference {
+	int32_t     attr_dataoffset;
+	u_int32_t   attr_length;
+} attrreference_t;
+
+/* XXX PPD This is derived from HFSVolumePriv.h and should perhaps be referenced from there? */
+
+struct diskextent {
+	u_int32_t                                       startblock;                             /* first block allocated */
+	u_int32_t                                       blockcount;                             /* number of blocks allocated */
+};
+
+typedef struct diskextent extentrecord[8];
+
+typedef u_int32_t vol_capabilities_set_t[4];
+
+#define VOL_CAPABILITIES_FORMAT 0
+#define VOL_CAPABILITIES_INTERFACES 1
+#define VOL_CAPABILITIES_RESERVED1 2
+#define VOL_CAPABILITIES_RESERVED2 3
+
+typedef struct vol_capabilities_attr {
+	vol_capabilities_set_t capabilities;
+	vol_capabilities_set_t valid;
+} vol_capabilities_attr_t;
+
+/*
+ * XXX this value needs to be raised - 3893388
+ */
+#define ATTR_MAX_BUFFER         8192
+
+/*
+ * VOL_CAP_FMT_PERSISTENTOBJECTIDS: When set, the volume has object IDs
+ * that are persistent (retain their values even when the volume is
+ * unmounted and remounted), and a file or directory can be looked up
+ * by ID.  Volumes that support VolFS and can support Carbon File ID
+ * references should set this bit.
+ *
+ * VOL_CAP_FMT_SYMBOLICLINKS: When set, the volume supports symbolic
+ * links.  The symlink(), readlink(), and lstat() calls all use this
+ * symbolic link.
+ *
+ * VOL_CAP_FMT_HARDLINKS: When set, the volume supports hard links.
+ * The link() call creates hard links.
+ *
+ * VOL_CAP_FMT_JOURNAL: When set, the volume is capable of supporting
+ * a journal used to speed recovery in case of unplanned shutdown
+ * (such as a power outage or crash).  This bit does not necessarily
+ * mean the volume is actively using a journal for recovery.
+ *
+ * VOL_CAP_FMT_JOURNAL_ACTIVE: When set, the volume is currently using
+ * a journal for use in speeding recovery after an unplanned shutdown.
+ * This bit can be set only if VOL_CAP_FMT_JOURNAL is also set.
+ *
+ * VOL_CAP_FMT_NO_ROOT_TIMES: When set, the volume format does not
+ * store reliable times for the root directory, so you should not
+ * depend on them to detect changes, etc.
+ *
+ * VOL_CAP_FMT_SPARSE_FILES: When set, the volume supports sparse files.
+ * That is, files which can have "holes" that have never been written
+ * to, and are not allocated on disk.  Sparse files may have an
+ * allocated size that is less than the file's logical length.
+ *
+ * VOL_CAP_FMT_ZERO_RUNS: For security reasons, parts of a file (runs)
+ * that have never been written to must appear to contain zeroes.  When
+ * this bit is set, the volume keeps track of allocated but unwritten
+ * runs of a file so that it can substitute zeroes without actually
+ * writing zeroes to the media.  This provides performance similar to
+ * sparse files, but not the space savings.
+ *
+ * VOL_CAP_FMT_CASE_SENSITIVE: When set, file and directory names are
+ * case sensitive (upper and lower case are different).  When clear,
+ * an upper case character is equivalent to a lower case character,
+ * and you can't have two names that differ solely in the case of
+ * the characters.
+ *
+ * VOL_CAP_FMT_CASE_PRESERVING: When set, file and directory names
+ * preserve the difference between upper and lower case.  If clear,
+ * the volume may change the case of some characters (typically
+ * making them all upper or all lower case).  A volume that sets
+ * VOL_CAP_FMT_CASE_SENSITIVE should also set VOL_CAP_FMT_CASE_PRESERVING.
+ *
+ * VOL_CAP_FMT_FAST_STATFS: This bit is used as a hint to upper layers
+ * (especially Carbon) that statfs() is fast enough that its results
+ * need not be cached by those upper layers.  A volume that caches
+ * the statfs information in its in-memory structures should set this bit.
+ * A volume that must always read from disk or always perform a network
+ * transaction should not set this bit.
+ *
+ * VOL_CAP_FMT_2TB_FILESIZE: If this bit is set the volume format supports
+ * file sizes larger than 4GB, and potentially up to 2TB; it does not
+ * indicate whether the filesystem supports files larger than that.
+ *
+ * VOL_CAP_FMT_OPENDENYMODES: When set, the volume supports open deny
+ * modes (e.g. "open for read write, deny write"; effectively, mandatory
+ * file locking based on open modes).
+ *
+ * VOL_CAP_FMT_HIDDEN_FILES: When set, the volume supports the UF_HIDDEN
+ * file flag, and the UF_HIDDEN flag is mapped to that volume's native
+ * "hidden" or "invisible" bit (which may be the invisible bit from the
+ * Finder Info extended attribute).
+ *
+ * VOL_CAP_FMT_PATH_FROM_ID:  When set, the volume supports the ability
+ * to derive a pathname to the root of the file system given only the
+ * id of an object.  This also implies that object ids on this file
+ * system are persistent and not recycled.  This is a very specialized
+ * capability and it is assumed that most file systems will not support
+ * it.  Its use is for legacy non-posix APIs like ResolveFileIDRef.
+ *
+ * VOL_CAP_FMT_NO_VOLUME_SIZES: When set, the volume does not support
+ * returning values for total data blocks, available blocks, or free blocks
+ * (as in f_blocks, f_bavail, or f_bfree in "struct statfs").  Historically,
+ * those values were set to 0xFFFFFFFF for volumes that did not support them.
+ *
+ * VOL_CAP_FMT_DECMPFS_COMPRESSION: When set, the volume supports transparent
+ * decompression of compressed files using decmpfs.
+ *
+ * VOL_CAP_FMT_64BIT_OBJECT_IDS: When set, the volume uses object IDs that
+ * are 64-bit. This means that ATTR_CMN_FILEID and ATTR_CMN_PARENTID are the
+ * only legitimate attributes for obtaining object IDs from this volume and the
+ * 32-bit fid_objno fields of the fsobj_id_t returned by ATTR_CMN_OBJID,
+ * ATTR_CMN_OBJPERMID, and ATTR_CMN_PAROBJID are undefined.
+ *
+ * VOL_CAP_FMT_DIR_HARDLINKS: When set, the volume supports directory
+ * hard links.
+ *
+ * VOL_CAP_FMT_DOCUMENT_ID: When set, the volume supports document IDs
+ * (an ID which persists across object ID changes) for document revisions.
+ *
+ * VOL_CAP_FMT_WRITE_GENERATION_COUNT: When set, the volume supports write
+ * generation counts (a count of how many times an object has been modified)
+ *
+ * VOL_CAP_FMT_NO_IMMUTABLE_FILES: When set, the volume does not support
+ * setting the UF_IMMUTABLE flag.
+ *
+ * VOL_CAP_FMT_NO_PERMISSIONS: When set, the volume does not support setting
+ * permissions.
+ *
+ * VOL_CAP_FMT_SHARED_SPACE: When set, the volume supports sharing space with
+ * other filesystems i.e. multiple logical filesystems can exist in the same
+ * "partition". An implication of this is that the filesystem which sets
+ * this capability treats waitfor arguments to VFS_SYNC as bit flags.
+ *
+ * VOL_CAP_FMT_VOL_GROUPS: When set, this volume is part of a volume-group
+ * that implies multiple volumes must be mounted in order to boot and root the
+ * operating system. Typically, this means a read-only system volume and a
+ * writable data volume.
+ *
+ * VOL_CAP_FMT_SEALED: When set, this volume is cryptographically sealed.
+ * Any modifications to volume data or metadata will be detected and may
+ * render the volume unusable.
+ */
+#define VOL_CAP_FMT_PERSISTENTOBJECTIDS         0x00000001
+#define VOL_CAP_FMT_SYMBOLICLINKS               0x00000002
+#define VOL_CAP_FMT_HARDLINKS                   0x00000004
+#define VOL_CAP_FMT_JOURNAL                     0x00000008
+#define VOL_CAP_FMT_JOURNAL_ACTIVE              0x00000010
+#define VOL_CAP_FMT_NO_ROOT_TIMES               0x00000020
+#define VOL_CAP_FMT_SPARSE_FILES                0x00000040
+#define VOL_CAP_FMT_ZERO_RUNS                   0x00000080
+#define VOL_CAP_FMT_CASE_SENSITIVE              0x00000100
+#define VOL_CAP_FMT_CASE_PRESERVING             0x00000200
+#define VOL_CAP_FMT_FAST_STATFS                 0x00000400
+#define VOL_CAP_FMT_2TB_FILESIZE                0x00000800
+#define VOL_CAP_FMT_OPENDENYMODES               0x00001000
+#define VOL_CAP_FMT_HIDDEN_FILES                0x00002000
+#define VOL_CAP_FMT_PATH_FROM_ID                0x00004000
+#define VOL_CAP_FMT_NO_VOLUME_SIZES             0x00008000
+#define VOL_CAP_FMT_DECMPFS_COMPRESSION         0x00010000
+#define VOL_CAP_FMT_64BIT_OBJECT_IDS            0x00020000
+#define VOL_CAP_FMT_DIR_HARDLINKS               0x00040000
+#define VOL_CAP_FMT_DOCUMENT_ID                 0x00080000
+#define VOL_CAP_FMT_WRITE_GENERATION_COUNT      0x00100000
+#define VOL_CAP_FMT_NO_IMMUTABLE_FILES          0x00200000
+#define VOL_CAP_FMT_NO_PERMISSIONS              0x00400000
+#define VOL_CAP_FMT_SHARED_SPACE                0x00800000
+#define VOL_CAP_FMT_VOL_GROUPS                  0x01000000
+#define VOL_CAP_FMT_SEALED                      0x02000000
+
+/*
+ * VOL_CAP_INT_SEARCHFS: When set, the volume implements the
+ * searchfs() system call (the vnop_searchfs vnode operation).
+ *
+ * VOL_CAP_INT_ATTRLIST: When set, the volume implements the
+ * getattrlist() and setattrlist() system calls (vnop_getattrlist
+ * and vnop_setattrlist vnode operations) for the volume, files,
+ * and directories.  The volume may or may not implement the
+ * readdirattr() system call.  XXX Is there any minimum set
+ * of attributes that should be supported?  To determine the
+ * set of supported attributes, get the ATTR_VOL_ATTRIBUTES
+ * attribute of the volume.
+ *
+ * VOL_CAP_INT_NFSEXPORT: When set, the volume implements exporting
+ * of NFS volumes.
+ *
+ * VOL_CAP_INT_READDIRATTR: When set, the volume implements the
+ * readdirattr() system call (vnop_readdirattr vnode operation).
+ *
+ * VOL_CAP_INT_EXCHANGEDATA: When set, the volume implements the
+ * exchangedata() system call (VNOP_EXCHANGE vnode operation).
+ *
+ * VOL_CAP_INT_COPYFILE: When set, the volume implements the
+ * VOP_COPYFILE vnode operation.  (XXX There should be a copyfile()
+ * system call in <unistd.h>.)
+ *
+ * VOL_CAP_INT_ALLOCATE: When set, the volume implements the
+ * VNOP_ALLOCATE vnode operation, which means it implements the
+ * F_PREALLOCATE selector of fcntl(2).
+ *
+ * VOL_CAP_INT_VOL_RENAME: When set, the volume implements the
+ * ATTR_VOL_NAME attribute for both getattrlist() and setattrlist().
+ * The volume can be renamed by setting ATTR_VOL_NAME with setattrlist().
+ *
+ * VOL_CAP_INT_ADVLOCK: When set, the volume implements POSIX style
+ * byte range locks via vnop_advlock (accessible from fcntl(2)).
+ *
+ * VOL_CAP_INT_FLOCK: When set, the volume implements whole-file flock(2)
+ * style locks via vnop_advlock.  This includes the O_EXLOCK and O_SHLOCK
+ * flags of the open(2) call.
+ *
+ * VOL_CAP_INT_EXTENDED_SECURITY: When set, the volume implements
+ * extended security (ACLs).
+ *
+ * VOL_CAP_INT_USERACCESS:  When set, the volume supports the
+ * ATTR_CMN_USERACCESS attribute (used to get the user's access
+ * mode to the file).
+ *
+ * VOL_CAP_INT_MANLOCK: When set, the volume supports AFP-style
+ * mandatory byte range locks via an ioctl().
+ *
+ * VOL_CAP_INT_EXTENDED_ATTR: When set, the volume implements
+ * native extended attribues.
+ *
+ * VOL_CAP_INT_NAMEDSTREAMS: When set, the volume supports
+ * native named streams.
+ *
+ * VOL_CAP_INT_CLONE: When set, the volume supports clones.
+ *
+ * VOL_CAP_INT_SNAPSHOT: When set, the volume supports snapshots.
+ *
+ * VOL_CAP_INT_RENAME_SWAP: When set, the volume supports swapping
+ * file system objects.
+ *
+ * VOL_CAP_INT_RENAME_EXCL: When set, the volume supports an
+ * exclusive rename operation.
+ *
+ * VOL_CAP_INT_RENAME_OPENFAIL: When set, the volume may fail rename
+ * operations on files that are open.
+ */
+#define VOL_CAP_INT_SEARCHFS                    0x00000001
+#define VOL_CAP_INT_ATTRLIST                    0x00000002
+#define VOL_CAP_INT_NFSEXPORT                   0x00000004
+#define VOL_CAP_INT_READDIRATTR                 0x00000008
+#define VOL_CAP_INT_EXCHANGEDATA                0x00000010
+#define VOL_CAP_INT_COPYFILE                    0x00000020
+#define VOL_CAP_INT_ALLOCATE                    0x00000040
+#define VOL_CAP_INT_VOL_RENAME                  0x00000080
+#define VOL_CAP_INT_ADVLOCK                     0x00000100
+#define VOL_CAP_INT_FLOCK                       0x00000200
+#define VOL_CAP_INT_EXTENDED_SECURITY           0x00000400
+#define VOL_CAP_INT_USERACCESS                  0x00000800
+#define VOL_CAP_INT_MANLOCK                     0x00001000
+#define VOL_CAP_INT_NAMEDSTREAMS                0x00002000
+#define VOL_CAP_INT_EXTENDED_ATTR               0x00004000
+#define VOL_CAP_INT_CLONE                       0x00010000
+#define VOL_CAP_INT_SNAPSHOT                    0x00020000
+#define VOL_CAP_INT_RENAME_SWAP                 0x00040000
+#define VOL_CAP_INT_RENAME_EXCL                 0x00080000
+#define VOL_CAP_INT_RENAME_OPENFAIL             0x00100000
+
+typedef struct vol_attributes_attr {
+	attribute_set_t validattr;
+	attribute_set_t nativeattr;
+} vol_attributes_attr_t;
+
+#define ATTR_CMN_NAME                           0x00000001
+#define ATTR_CMN_DEVID                          0x00000002
+#define ATTR_CMN_FSID                           0x00000004
+#define ATTR_CMN_OBJTYPE                        0x00000008
+#define ATTR_CMN_OBJTAG                         0x00000010
+#define ATTR_CMN_OBJID                          0x00000020
+#define ATTR_CMN_OBJPERMANENTID                 0x00000040
+#define ATTR_CMN_PAROBJID                       0x00000080
+#define ATTR_CMN_SCRIPT                         0x00000100
+#define ATTR_CMN_CRTIME                         0x00000200
+#define ATTR_CMN_MODTIME                        0x00000400
+#define ATTR_CMN_CHGTIME                        0x00000800
+#define ATTR_CMN_ACCTIME                        0x00001000
+#define ATTR_CMN_BKUPTIME                       0x00002000
+#define ATTR_CMN_FNDRINFO                       0x00004000
+#define ATTR_CMN_OWNERID                        0x00008000
+#define ATTR_CMN_GRPID                          0x00010000
+#define ATTR_CMN_ACCESSMASK                     0x00020000
+#define ATTR_CMN_FLAGS                          0x00040000
+
+/* The following were defined as:				*/
+/*      #define ATTR_CMN_NAMEDATTRCOUNT		0x00080000	*/
+/*      #define ATTR_CMN_NAMEDATTRLIST		0x00100000	*/
+/* These bits have been salvaged for use as:			*/
+/*	#define ATTR_CMN_GEN_COUNT		0x00080000	*/
+/*	#define ATTR_CMN_DOCUMENT_ID		0x00100000	*/
+/* They can only be used with the  FSOPT_ATTR_CMN_EXTENDED	*/
+/* option flag.                                                 */
+
+#define ATTR_CMN_GEN_COUNT                      0x00080000
+#define ATTR_CMN_DOCUMENT_ID                    0x00100000
+
+#define ATTR_CMN_USERACCESS                     0x00200000
+#define ATTR_CMN_EXTENDED_SECURITY              0x00400000
+#define ATTR_CMN_UUID                           0x00800000
+#define ATTR_CMN_GRPUUID                        0x01000000
+#define ATTR_CMN_FILEID                         0x02000000
+#define ATTR_CMN_PARENTID                       0x04000000
+#define ATTR_CMN_FULLPATH                       0x08000000
+#define ATTR_CMN_ADDEDTIME                      0x10000000
+#define ATTR_CMN_ERROR                          0x20000000
+#define ATTR_CMN_DATA_PROTECT_FLAGS             0x40000000
+
+/*
+ * ATTR_CMN_RETURNED_ATTRS is only valid with getattrlist(2) and
+ * getattrlistbulk(2). It is always the first attribute in the return buffer.
+ */
+#define ATTR_CMN_RETURNED_ATTRS                 0x80000000
+
+#define ATTR_CMN_VALIDMASK                      0xFFFFFFFF
+/*
+ * The settable ATTR_CMN_* attributes include the following:
+ * ATTR_CMN_SCRIPT
+ * ATTR_CMN_CRTIME
+ * ATTR_CMN_MODTIME
+ * ATTR_CMN_CHGTIME
+ *
+ * ATTR_CMN_ACCTIME
+ * ATTR_CMN_BKUPTIME
+ * ATTR_CMN_FNDRINFO
+ * ATTR_CMN_OWNERID
+ *
+ * ATTR_CMN_GRPID
+ * ATTR_CMN_ACCESSMASK
+ * ATTR_CMN_FLAGS
+ *
+ * ATTR_CMN_EXTENDED_SECURITY
+ * ATTR_CMN_UUID
+ *
+ * ATTR_CMN_GRPUUID
+ *
+ * ATTR_CMN_DATA_PROTECT_FLAGS
+ */
+#define ATTR_CMN_SETMASK                        0x51C7FF00
+#define ATTR_CMN_VOLSETMASK                     0x00006700
+
+#define ATTR_VOL_FSTYPE                         0x00000001
+#define ATTR_VOL_SIGNATURE                      0x00000002
+#define ATTR_VOL_SIZE                           0x00000004
+#define ATTR_VOL_SPACEFREE                      0x00000008
+#define ATTR_VOL_SPACEAVAIL                     0x00000010
+#define ATTR_VOL_MINALLOCATION                  0x00000020
+#define ATTR_VOL_ALLOCATIONCLUMP                0x00000040
+#define ATTR_VOL_IOBLOCKSIZE                    0x00000080
+#define ATTR_VOL_OBJCOUNT                       0x00000100
+#define ATTR_VOL_FILECOUNT                      0x00000200
+#define ATTR_VOL_DIRCOUNT                       0x00000400
+#define ATTR_VOL_MAXOBJCOUNT                    0x00000800
+#define ATTR_VOL_MOUNTPOINT                     0x00001000
+#define ATTR_VOL_NAME                           0x00002000
+#define ATTR_VOL_MOUNTFLAGS                     0x00004000
+#define ATTR_VOL_MOUNTEDDEVICE                  0x00008000
+#define ATTR_VOL_ENCODINGSUSED                  0x00010000
+#define ATTR_VOL_CAPABILITIES                   0x00020000
+#define ATTR_VOL_UUID                           0x00040000
+#define ATTR_VOL_FSTYPENAME                     0x00100000
+#define ATTR_VOL_FSSUBTYPE                      0x00200000
+#define ATTR_VOL_SPACEUSED                      0x00800000
+#define ATTR_VOL_QUOTA_SIZE                     0x10000000
+#define ATTR_VOL_RESERVED_SIZE                  0x20000000
+#define ATTR_VOL_ATTRIBUTES                     0x40000000
+#define ATTR_VOL_INFO                           0x80000000
+
+#define ATTR_VOL_VALIDMASK                      0xF0B7FFFF
+
+/*
+ * The list of settable ATTR_VOL_* attributes include the following:
+ * ATTR_VOL_NAME
+ * ATTR_VOL_INFO
+ */
+#define ATTR_VOL_SETMASK                        0x80002000
+
+
+/* File/directory attributes: */
+#define ATTR_DIR_LINKCOUNT                      0x00000001
+#define ATTR_DIR_ENTRYCOUNT                     0x00000002
+#define ATTR_DIR_MOUNTSTATUS                    0x00000004
+#define ATTR_DIR_ALLOCSIZE                      0x00000008
+#define ATTR_DIR_IOBLOCKSIZE                    0x00000010
+#define ATTR_DIR_DATALENGTH                     0x00000020
+
+/* ATTR_DIR_MOUNTSTATUS Flags: */
+#define   DIR_MNTSTATUS_MNTPOINT                0x00000001
+#define   DIR_MNTSTATUS_TRIGGER                 0x00000002
+
+#define ATTR_DIR_VALIDMASK                      0x0000003f
+#define ATTR_DIR_SETMASK                        0x00000000
+
+#define ATTR_FILE_LINKCOUNT                     0x00000001
+#define ATTR_FILE_TOTALSIZE                     0x00000002
+#define ATTR_FILE_ALLOCSIZE                     0x00000004
+#define ATTR_FILE_IOBLOCKSIZE                   0x00000008
+#define ATTR_FILE_DEVTYPE                       0x00000020
+#define ATTR_FILE_FORKCOUNT                     0x00000080
+#define ATTR_FILE_FORKLIST                      0x00000100
+#define ATTR_FILE_DATALENGTH                    0x00000200
+#define ATTR_FILE_DATAALLOCSIZE                 0x00000400
+#define ATTR_FILE_RSRCLENGTH                    0x00001000
+#define ATTR_FILE_RSRCALLOCSIZE                 0x00002000
+
+#define ATTR_FILE_VALIDMASK                     0x000037FF
+/*
+ * Settable ATTR_FILE_* attributes include:
+ * ATTR_FILE_DEVTYPE
+ */
+#define ATTR_FILE_SETMASK                       0x00000020
+
+/* CMNEXT attributes extend the common attributes, but in the forkattr field */
+#define ATTR_CMNEXT_RELPATH     0x00000004
+#define ATTR_CMNEXT_PRIVATESIZE 0x00000008
+#define ATTR_CMNEXT_LINKID      0x00000010
+#define ATTR_CMNEXT_NOFIRMLINKPATH     0x00000020
+#define ATTR_CMNEXT_REALDEVID   0x00000040
+#define ATTR_CMNEXT_REALFSID    0x00000080
+#define ATTR_CMNEXT_CLONEID     0x00000100
+#define ATTR_CMNEXT_EXT_FLAGS   0x00000200
+#define ATTR_CMNEXT_RECURSIVE_GENCOUNT 0x00000400
+
+#define ATTR_CMNEXT_VALIDMASK   0x000007fc
+#define ATTR_CMNEXT_SETMASK             0x00000000
+
+/* Deprecated fork attributes */
+#define ATTR_FORK_TOTALSIZE                     0x00000001
+#define ATTR_FORK_ALLOCSIZE                     0x00000002
+#define ATTR_FORK_RESERVED                      0xffffffff
+
+#define ATTR_FORK_VALIDMASK                     0x00000003
+#define ATTR_FORK_SETMASK                       0x00000000
+
+/* Obsolete, implemented, not supported */
+#define ATTR_CMN_NAMEDATTRCOUNT                 0x00080000
+#define ATTR_CMN_NAMEDATTRLIST                  0x00100000
+#define ATTR_FILE_CLUMPSIZE                     0x00000010      /* obsolete */
+#define ATTR_FILE_FILETYPE                      0x00000040      /* always zero */
+#define ATTR_FILE_DATAEXTENTS                   0x00000800      /* obsolete, HFS-specific */
+#define ATTR_FILE_RSRCEXTENTS                   0x00004000      /* obsolete, HFS-specific */
+
+/* Required attributes for getattrlistbulk(2) */
+#define ATTR_BULK_REQUIRED (ATTR_CMN_NAME | ATTR_CMN_RETURNED_ATTRS)
+
+/*
+ * Searchfs
+ */
+#define SRCHFS_START                            0x00000001
+#define SRCHFS_MATCHPARTIALNAMES                0x00000002
+#define SRCHFS_MATCHDIRS                        0x00000004
+#define SRCHFS_MATCHFILES                       0x00000008
+#define SRCHFS_SKIPLINKS                        0x00000010
+#define SRCHFS_SKIPINVISIBLE                    0x00000020
+#define SRCHFS_SKIPPACKAGES                     0x00000040
+#define SRCHFS_SKIPINAPPROPRIATE                0x00000080
+
+#define SRCHFS_NEGATEPARAMS                     0x80000000
+#define SRCHFS_VALIDOPTIONSMASK                 0x800000FF
+
+struct fssearchblock {
+	struct attrlist         *returnattrs;
+	void                            *returnbuffer;
+	size_t                          returnbuffersize;
+	u_long                          maxmatches;
+	struct timeval          timelimit;
+	void                            *searchparams1;
+	size_t                          sizeofsearchparams1;
+	void                            *searchparams2;
+	size_t                          sizeofsearchparams2;
+	struct attrlist         searchattrs;
+};
+
+
+struct searchstate {
+	uint32_t                        ss_union_flags;         // for SRCHFS_START
+	uint32_t                        ss_union_layer;         // 0 = top
+	u_char                          ss_fsstate[548];        // fs private
+} __attribute__((packed));
+
+#define FST_EOF (-1)                            /* end-of-file offset */
+
+#endif /* __APPLE_API_UNSTABLE */
+#endif /* !_SYS_ATTR_H_ */
\ No newline at end of file
lib/libc/include/any-macos.13-any/sys/mman.h
@@ -0,0 +1,265 @@
+/*
+ * Copyright (c) 2000-2020 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@
+ */
+/* Copyright (c) 1995 NeXT Computer, Inc. All Rights Reserved */
+/*-
+ * Copyright (c) 1982, 1986, 1993
+ *	The Regents of the University of California.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *	This product includes software developed by the University of
+ *	California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ *	@(#)mman.h	8.1 (Berkeley) 6/2/93
+ */
+
+/*
+ * Currently unsupported:
+ *
+ * [TYM]	POSIX_TYPED_MEM_ALLOCATE
+ * [TYM]	POSIX_TYPED_MEM_ALLOCATE_CONTIG
+ * [TYM]	POSIX_TYPED_MEM_MAP_ALLOCATABLE
+ * [TYM]	struct posix_typed_mem_info
+ * [TYM]	posix_mem_offset()
+ * [TYM]	posix_typed_mem_get_info()
+ * [TYM]	posix_typed_mem_open()
+ */
+
+#ifndef _SYS_MMAN_H_
+#define _SYS_MMAN_H_
+
+#include <sys/appleapiopts.h>
+#include <sys/cdefs.h>
+
+#include <sys/_types.h>
+
+/*
+ * [various] The mode_t, off_t, and size_t types shall be defined as
+ * described in <sys/types.h>
+ */
+#include <sys/_types/_mode_t.h>
+#include <sys/_types/_off_t.h>
+#include <sys/_types/_size_t.h>
+
+#if __DARWIN_C_LEVEL >= 200809L
+#include <Availability.h>
+#endif /* __DARWIN_C_LEVEL */
+
+/*
+ * Protections are chosen from these bits, or-ed together
+ */
+#define PROT_NONE       0x00    /* [MC2] no permissions */
+#define PROT_READ       0x01    /* [MC2] pages can be read */
+#define PROT_WRITE      0x02    /* [MC2] pages can be written */
+#define PROT_EXEC       0x04    /* [MC2] pages can be executed */
+
+/*
+ * Flags contain sharing type and options.
+ * Sharing types; choose one.
+ */
+#define MAP_SHARED      0x0001          /* [MF|SHM] share changes */
+#define MAP_PRIVATE     0x0002          /* [MF|SHM] changes are private */
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#define MAP_COPY        MAP_PRIVATE     /* Obsolete */
+#endif  /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
+
+/*
+ * Other flags
+ */
+#define MAP_FIXED        0x0010 /* [MF|SHM] interpret addr exactly */
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#define MAP_RENAME       0x0020 /* Sun: rename private pages to file */
+#define MAP_NORESERVE    0x0040 /* Sun: don't reserve needed swap area */
+#define MAP_RESERVED0080 0x0080 /* previously unimplemented MAP_INHERIT */
+#define MAP_NOEXTEND     0x0100 /* for MAP_FILE, don't change file size */
+#define MAP_HASSEMAPHORE 0x0200 /* region may contain semaphores */
+#define MAP_NOCACHE      0x0400 /* don't cache pages for this mapping */
+#define MAP_JIT          0x0800 /* Allocate a region that will be used for JIT purposes */
+
+/*
+ * Mapping type
+ */
+#define MAP_FILE        0x0000  /* map from file (default) */
+#define MAP_ANON        0x1000  /* allocated from memory, swap space */
+#define MAP_ANONYMOUS   MAP_ANON
+
+/*
+ * The MAP_RESILIENT_* flags can be used when the caller wants to map some
+ * possibly unreliable memory and be able to access it safely, possibly
+ * getting the wrong contents rather than raising any exception.
+ * For safety reasons, such mappings have to be read-only (PROT_READ access
+ * only).
+ *
+ * MAP_RESILIENT_CODESIGN:
+ *      accessing this mapping will not generate code-signing violations,
+ *	even if the contents are tainted.
+ * MAP_RESILIENT_MEDIA:
+ *	accessing this mapping will not generate an exception if the contents
+ *	are not available (unreachable removable or remote media, access beyond
+ *	end-of-file, ...).  Missing contents will be replaced with zeroes.
+ */
+#define MAP_RESILIENT_CODESIGN  0x2000 /* no code-signing failures */
+#define MAP_RESILIENT_MEDIA     0x4000 /* no backing-store failures */
+
+#if defined(__MAC_OS_X_VERSION_MIN_REQUIRED) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101500
+#define MAP_32BIT       0x8000          /* Return virtual addresses <4G only */
+#endif /* defined(__MAC_OS_X_VERSION_MIN_REQUIRED) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 101500 */
+
+
+/*
+ * Flags used to support translated processes.
+ */
+#define MAP_TRANSLATED_ALLOW_EXECUTE 0x20000 /* allow execute in translated processes */
+
+#define MAP_UNIX03       0x40000 /* UNIX03 compliance */
+
+#define MAP_TPRO         0x80000 /* Allocate a region that will be protected by TPRO */
+
+#endif  /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
+
+/*
+ * Process memory locking
+ */
+#define MCL_CURRENT     0x0001  /* [ML] Lock only current memory */
+#define MCL_FUTURE      0x0002  /* [ML] Lock all future memory as well */
+
+/*
+ * Error return from mmap()
+ */
+#define MAP_FAILED      ((void *)-1)    /* [MF|SHM] mmap failed */
+
+/*
+ * msync() flags
+ */
+#define MS_ASYNC        0x0001  /* [MF|SIO] return immediately */
+#define MS_INVALIDATE   0x0002  /* [MF|SIO] invalidate all cached data */
+#define MS_SYNC         0x0010  /* [MF|SIO] msync synchronously */
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#define MS_KILLPAGES    0x0004  /* invalidate pages, leave mapped */
+#define MS_DEACTIVATE   0x0008  /* deactivate pages, leave mapped */
+
+#endif  /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
+
+
+/*
+ * Advice to madvise
+ */
+#define POSIX_MADV_NORMAL       0       /* [MC1] no further special treatment */
+#define POSIX_MADV_RANDOM       1       /* [MC1] expect random page refs */
+#define POSIX_MADV_SEQUENTIAL   2       /* [MC1] expect sequential page refs */
+#define POSIX_MADV_WILLNEED     3       /* [MC1] will need these pages */
+#define POSIX_MADV_DONTNEED     4       /* [MC1] dont need these pages */
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+#define MADV_NORMAL             POSIX_MADV_NORMAL
+#define MADV_RANDOM             POSIX_MADV_RANDOM
+#define MADV_SEQUENTIAL         POSIX_MADV_SEQUENTIAL
+#define MADV_WILLNEED           POSIX_MADV_WILLNEED
+#define MADV_DONTNEED           POSIX_MADV_DONTNEED
+#define MADV_FREE               5       /* pages unneeded, discard contents */
+#define MADV_ZERO_WIRED_PAGES   6       /* zero the wired pages that have not been unwired before the entry is deleted */
+#define MADV_FREE_REUSABLE      7       /* pages can be reused (by anyone) */
+#define MADV_FREE_REUSE         8       /* caller wants to reuse those pages */
+#define MADV_CAN_REUSE          9
+#define MADV_PAGEOUT            10      /* page out now (internal only) */
+
+/*
+ * Return bits from mincore
+ */
+#define MINCORE_INCORE           0x1     /* Page is incore */
+#define MINCORE_REFERENCED       0x2     /* Page has been referenced by us */
+#define MINCORE_MODIFIED         0x4     /* Page has been modified by us */
+#define MINCORE_REFERENCED_OTHER 0x8     /* Page has been referenced */
+#define MINCORE_MODIFIED_OTHER  0x10     /* Page has been modified */
+#define MINCORE_PAGED_OUT       0x20     /* Page has been paged out */
+#define MINCORE_COPIED          0x40     /* Page has been copied */
+#define MINCORE_ANONYMOUS       0x80     /* Page belongs to an anonymous object */
+#endif  /* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
+
+
+
+
+__BEGIN_DECLS
+/* [ML] */
+int     mlockall(int);
+int     munlockall(void);
+/* [MR] */
+int     mlock(const void *, size_t);
+#ifndef _MMAP
+#define _MMAP
+/* [MC3]*/
+void *  mmap(void *, size_t, int, int, int, off_t) __DARWIN_ALIAS(mmap);
+#endif
+/* [MPR] */
+int     mprotect(void *, size_t, int) __DARWIN_ALIAS(mprotect);
+/* [MF|SIO] */
+int     msync(void *, size_t, int) __DARWIN_ALIAS_C(msync);
+/* [MR] */
+int     munlock(const void *, size_t);
+/* [MC3]*/
+int     munmap(void *, size_t) __DARWIN_ALIAS(munmap);
+/* [SHM] */
+int     shm_open(const char *, int, ...);
+int     shm_unlink(const char *);
+/* [ADV] */
+int     posix_madvise(void *, size_t, int);
+
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
+int     madvise(void *, size_t, int);
+int     mincore(const void *, size_t, char *);
+int     minherit(void *, size_t, int);
+#endif
+
+
+__END_DECLS
+
+#endif /* !_SYS_MMAN_H_ */
\ No newline at end of file
lib/libc/include/any-macos.13-any/sys/mount.h
@@ -404,12 +404,27 @@ struct fhandle {
 };
 typedef struct fhandle  fhandle_t;
 
+/*
+ * Cryptex authentication
+ * Note: these 2 enums are used in conjunction, graftdmg_type is used for authentication while grafting
+ * cryptexes and cryptex_auth_type is currently used for authentication while mounting generic
+ * cryptexes. We need to make sure we do not use the reserved values in each for a new authentication type.
+ */
+
 OS_ENUM(graftdmg_type, uint32_t,
     GRAFTDMG_CRYPTEX_BOOT = 1,
     GRAFTDMG_CRYPTEX_PREBOOT = 2,
-    GRAFTDMG_CRYPTEX_DOWNLEVEL = 3);
-
-
+    GRAFTDMG_CRYPTEX_DOWNLEVEL = 3
+    // Reserved: CRYPTEX1_AUTH_ENV_GENERIC = 4,
+    // Reserved: CRYPTEX1_AUTH_ENV_GENERIC_SUPPLEMENTAL = 5
+    );
+
+OS_ENUM(cryptex_auth_type, uint32_t,
+    // Reserved: GRAFTDMG_CRYPTEX_BOOT = 1,
+    // Reserved: GRAFTDMG_CRYPTEX_PREBOOT = 2,
+    // Reserved: GRAFTDMG_CRYPTEX_DOWNLEVEL = 3,
+    CRYPTEX1_AUTH_ENV_GENERIC = 4,
+    CRYPTEX1_AUTH_ENV_GENERIC_SUPPLEMENTAL = 5);
 
 
 __BEGIN_DECLS
lib/libc/include/any-macos.13-any/xpc/availability.h
@@ -0,0 +1,134 @@
+#ifndef __XPC_AVAILABILITY_H__
+#define __XPC_AVAILABILITY_H__
+
+#include <Availability.h>
+
+// Certain parts of the project use all the project's headers but have to build
+// against newer OSX SDKs than ebuild uses -- liblaunch_host being the example.
+// So we need to define these.
+#ifndef __MAC_10_16
+#define __MAC_10_16 101600
+#endif // __MAC_10_16
+
+#ifndef __MAC_10_15
+#define __MAC_10_15 101500
+#define __AVAILABILITY_INTERNAL__MAC_10_15 \
+__attribute__((availability(macosx, introduced=10.15)))
+#endif // __MAC_10_15
+
+#ifndef __MAC_10_14
+#define __MAC_10_14 101400
+#define __AVAILABILITY_INTERNAL__MAC_10_14 \
+__attribute__((availability(macosx, introduced=10.14)))
+#endif // __MAC_10_14
+
+#ifndef __MAC_10_13
+#define __MAC_10_13 101300
+#define __AVAILABILITY_INTERNAL__MAC_10_13 \
+	__attribute__((availability(macosx, introduced=10.13)))
+#endif // __MAC_10_13
+
+#ifndef __MAC_10_12
+#define __MAC_10_12 101200
+#define __AVAILABILITY_INTERNAL__MAC_10_12 \
+	__attribute__((availability(macosx, introduced=10.12)))
+#endif // __MAC_10_12
+
+#ifndef __MAC_10_11
+#define __MAC_10_11 101100
+#define __AVAILABILITY_INTERNAL__MAC_10_11 \
+	__attribute__((availability(macosx, introduced=10.11)))
+#endif // __MAC_10_11
+
+#ifndef __MAC_12_0
+#define __MAC_12_0 120000
+#define __AVAILABILITY_INTERNAL__MAC_12_0 \
+	__attribute__((availability(macosx, introduced=12.0)))
+#endif // __MAC_12_0
+
+#ifndef __MAC_13_3
+#define __MAC_13_3 130300
+#endif // __MAC_13_3
+
+#ifndef __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_11
+#define __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_11
+#endif // __AVAILABILITY_INTERNAL__MAC_10_2_DEP__MAC_10_11
+
+#ifndef __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_11
+#define __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_11
+#endif // __AVAILABILITY_INTERNAL__MAC_10_3_DEP__MAC_10_11
+
+#ifndef __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_11
+#define __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_11
+#endif // __AVAILABILITY_INTERNAL__MAC_10_4_DEP__MAC_10_11
+
+#ifndef __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_11
+#define __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_11
+#endif // __AVAILABILITY_INTERNAL__MAC_10_5_DEP__MAC_10_11
+
+#ifndef __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_11
+#define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_11
+#endif // __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_11
+
+#ifndef __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_11
+#define __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_11
+#endif // __AVAILABILITY_INTERNAL__MAC_10_7_DEP__MAC_10_11
+
+#ifndef __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_11
+#define __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_11
+#endif // __AVAILABILITY_INTERNAL__MAC_10_8_DEP__MAC_10_11
+
+#ifndef __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_11
+#define __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_11
+#endif // __AVAILABILITY_INTERNAL__MAC_10_9_DEP__MAC_10_11
+
+#ifndef __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_11
+#define __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_11
+#endif // __AVAILABILITY_INTERNAL__MAC_10_10_DEP__MAC_10_11
+
+#ifndef __AVAILABILITY_INTERNAL__MAC_10_11_DEP__MAC_10_11
+#define __AVAILABILITY_INTERNAL__MAC_10_11_DEP__MAC_10_11
+#endif // __AVAILABILITY_INTERNAL__MAC_10_11_DEP__MAC_10_11
+
+#ifndef __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_13
+#define __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_13
+#endif // __AVAILABILITY_INTERNAL__MAC_10_6_DEP__MAC_10_13
+
+#if __has_include(<simulator_host.h>)
+#include <simulator_host.h>
+#else // __has_include(<simulator_host.h>)
+#ifndef IPHONE_SIMULATOR_HOST_MIN_VERSION_REQUIRED
+#define IPHONE_SIMULATOR_HOST_MIN_VERSION_REQUIRED 999999
+#endif // IPHONE_SIMULATOR_HOST_MIN_VERSION_REQUIRED
+#endif // __has_include(<simulator_host.h>)
+
+#ifndef __WATCHOS_UNAVAILABLE
+#define __WATCHOS_UNAVAILABLE
+#endif
+
+#ifndef __TVOS_UNAVAILABLE
+#define __TVOS_UNAVAILABLE
+#endif
+
+// simulator host-side bits build against SDKs not having __*_AVAILABLE() yet
+#ifndef __OSX_AVAILABLE
+#define __OSX_AVAILABLE(...)
+#endif
+
+#ifndef __IOS_AVAILABLE
+#define __IOS_AVAILABLE(...)
+#endif
+
+#ifndef __TVOS_AVAILABLE
+#define __TVOS_AVAILABLE(...)
+#endif
+
+#ifndef __WATCHOS_AVAILABLE
+#define __WATCHOS_AVAILABLE(...)
+#endif
+
+#ifndef __API_AVAILABLE
+#define __API_AVAILABLE(...)
+#endif
+
+#endif // __XPC_AVAILABILITY_H__
\ No newline at end of file
lib/libc/include/any-macos.13-any/AvailabilityInternal.h
@@ -55,7 +55,7 @@
     #ifdef __ENVIRONMENT_TV_OS_VERSION_MIN_REQUIRED__
         /* compiler sets __ENVIRONMENT_TV_OS_VERSION_MIN_REQUIRED__ when -mtvos-version-min is used */
         #define __TV_OS_VERSION_MIN_REQUIRED __ENVIRONMENT_TV_OS_VERSION_MIN_REQUIRED__
-        #define __TV_OS_VERSION_MAX_ALLOWED __TVOS_16_2
+        #define __TV_OS_VERSION_MAX_ALLOWED __TVOS_16_4
         /* for compatibility with existing code.  New code should use platform specific checks */
         #define __IPHONE_OS_VERSION_MIN_REQUIRED 90000
     #endif
@@ -65,7 +65,7 @@
     #ifdef __ENVIRONMENT_WATCH_OS_VERSION_MIN_REQUIRED__
         /* compiler sets __ENVIRONMENT_WATCH_OS_VERSION_MIN_REQUIRED__ when -mwatchos-version-min is used */
         #define __WATCH_OS_VERSION_MIN_REQUIRED __ENVIRONMENT_WATCH_OS_VERSION_MIN_REQUIRED__
-        #define __WATCH_OS_VERSION_MAX_ALLOWED __WATCHOS_9_2
+        #define __WATCH_OS_VERSION_MAX_ALLOWED __WATCHOS_9_4
         /* for compatibility with existing code.  New code should use platform specific checks */
         #define __IPHONE_OS_VERSION_MIN_REQUIRED 90000
     #endif
@@ -75,7 +75,7 @@
     #ifdef __ENVIRONMENT_BRIDGE_OS_VERSION_MIN_REQUIRED__
         
         #define __BRIDGE_OS_VERSION_MIN_REQUIRED __ENVIRONMENT_BRIDGE_OS_VERSION_MIN_REQUIRED__
-        #define __BRIDGE_OS_VERSION_MAX_ALLOWED 70100
+        #define __BRIDGE_OS_VERSION_MAX_ALLOWED 70300
         /* for compatibility with existing code.  New code should use platform specific checks */
         #define __IPHONE_OS_VERSION_MIN_REQUIRED 110000
     #endif
@@ -90,14 +90,14 @@
 #ifdef __MAC_OS_X_VERSION_MIN_REQUIRED
     /* make sure a default max version is set */
     #ifndef __MAC_OS_X_VERSION_MAX_ALLOWED
-        #define __MAC_OS_X_VERSION_MAX_ALLOWED __MAC_13_1
+        #define __MAC_OS_X_VERSION_MAX_ALLOWED __MAC_13_3
     #endif
 #endif /* __MAC_OS_X_VERSION_MIN_REQUIRED */
 
 #ifdef __IPHONE_OS_VERSION_MIN_REQUIRED
     /* make sure a default max version is set */
     #ifndef __IPHONE_OS_VERSION_MAX_ALLOWED
-        #define __IPHONE_OS_VERSION_MAX_ALLOWED     __IPHONE_16_2
+        #define __IPHONE_OS_VERSION_MAX_ALLOWED     __IPHONE_16_4
     #endif
     /* make sure a valid min is set */
     #if __IPHONE_OS_VERSION_MIN_REQUIRED < __IPHONE_2_0
lib/libc/include/any-macos.13-any/AvailabilityMacros.h
@@ -123,6 +123,7 @@
 #define MAC_OS_VERSION_12_0         120000
 #define MAC_OS_VERSION_13_0         130000
 #define MAC_OS_VERSION_13_1         130100
+#define MAC_OS_VERSION_13_3         130300
 
 /* 
  * If min OS not specified, assume 10.4 for intel
@@ -149,10 +150,10 @@
  * if max OS not specified, assume larger of (10.15, min)
  */
 #ifndef MAC_OS_X_VERSION_MAX_ALLOWED
-    #if MAC_OS_X_VERSION_MIN_REQUIRED > MAC_OS_VERSION_13_1
+    #if MAC_OS_X_VERSION_MIN_REQUIRED > MAC_OS_VERSION_13_3
         #define MAC_OS_X_VERSION_MAX_ALLOWED MAC_OS_X_VERSION_MIN_REQUIRED
     #else
-        #define MAC_OS_X_VERSION_MAX_ALLOWED MAC_OS_VERSION_13_1
+        #define MAC_OS_X_VERSION_MAX_ALLOWED MAC_OS_VERSION_13_3
     #endif
 #endif
 
lib/libc/include/any-macos.13-any/AvailabilityVersions.h
@@ -69,6 +69,8 @@
 #define __MAC_12_3          120300
 #define __MAC_13_0          130000
 #define __MAC_13_1          130100
+#define __MAC_13_2          130200
+#define __MAC_13_3          130300
 /* __MAC_NA is not defined to a value but is used as a token by macros to indicate that the API is unavailable */
 
 #define __IPHONE_2_0      20000
@@ -134,6 +136,8 @@
 #define __IPHONE_16_0    160000
 #define __IPHONE_16_1    160100
 #define __IPHONE_16_2    160200
+#define __IPHONE_16_3    160300
+#define __IPHONE_16_4    160400
 /* __IPHONE_NA is not defined to a value but is used as a token by macros to indicate that the API is unavailable */
 
 #define __TVOS_9_0        90000
@@ -172,6 +176,8 @@
 #define __TVOS_16_0      160000
 #define __TVOS_16_1      160100
 #define __TVOS_16_2      160200
+#define __TVOS_16_3      160300
+#define __TVOS_16_4      160400
 
 #define __WATCHOS_1_0     10000
 #define __WATCHOS_2_0     20000
@@ -207,6 +213,8 @@
 #define __WATCHOS_9_0     90000
 #define __WATCHOS_9_1     90100
 #define __WATCHOS_9_2     90200
+#define __WATCHOS_9_3     90300
+#define __WATCHOS_9_4     90400
 
 /*
  * Set up standard Mac OS X versions
lib/libc/include/any-macos.13-any/Block.h
@@ -18,7 +18,12 @@
 #   endif
 #endif
 
+#if __has_include(<Availability.h>)
 #include <Availability.h>
+#else
+#define __OSX_AVAILABLE_STARTING(m,i)
+#endif
+
 #include <TargetConditionals.h>
 #include <sys/cdefs.h>
 
@@ -58,8 +63,8 @@ BLOCK_EXPORT void * _NSConcreteStackBlock[32]
 
 // Type correct macros
 
-#define Block_copy(...) ((__typeof(__VA_ARGS__))_Block_copy((const void *)(__VA_ARGS__)))
-#define Block_release(...) _Block_release((const void *)(__VA_ARGS__))
+#define Block_copy(...) ((__typeof(__VA_ARGS__))_Block_copy(__unsafe_forge_single(const void *, (const void *)(__VA_ARGS__))))
+#define Block_release(...) _Block_release(__unsafe_forge_single(const void *, (const void *)(__VA_ARGS__)))
 
 
 #endif
\ No newline at end of file
lib/libc/include/any-macos.13-any/tgmath.h
@@ -0,0 +1,1381 @@
+/*
+ * Copyright (c) 2009 Apple Inc. All rights reserved.
+ *
+ * @APPLE_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 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.
+ *
+ * @APPLE_LICENSE_HEADER_END@
+ */
+
+#ifndef __TGMATH_H
+#define __TGMATH_H
+
+/* C99 7.22 Type-generic math <tgmath.h>. */
+#include <math.h>
+
+/* C++ handles type genericity with overloading in math.h. */
+#ifndef __cplusplus
+#include <complex.h>
+
+#if __has_include(<realtime_safety/realtime_safety.h>)
+#include <realtime_safety/realtime_safety.h>
+REALTIME_SAFE_BEGIN
+#endif
+
+#define _TG_ATTRSp __attribute__((__overloadable__))
+#define _TG_ATTRS __attribute__((__overloadable__, __always_inline__))
+
+// promotion
+
+typedef void _Argument_type_is_not_arithmetic;
+static _Argument_type_is_not_arithmetic __tg_promote(...)
+  __attribute__((__unavailable__,__overloadable__));
+static double               _TG_ATTRSp __tg_promote(int);
+static double               _TG_ATTRSp __tg_promote(unsigned int);
+static double               _TG_ATTRSp __tg_promote(long);
+static double               _TG_ATTRSp __tg_promote(unsigned long);
+static double               _TG_ATTRSp __tg_promote(long long);
+static double               _TG_ATTRSp __tg_promote(unsigned long long);
+static float                _TG_ATTRSp __tg_promote(float);
+static double               _TG_ATTRSp __tg_promote(double);
+static long double          _TG_ATTRSp __tg_promote(long double);
+static float _Complex       _TG_ATTRSp __tg_promote(float _Complex);
+static double _Complex      _TG_ATTRSp __tg_promote(double _Complex);
+static long double _Complex _TG_ATTRSp __tg_promote(long double _Complex);
+
+#define __tg_promote1(__x)           (__typeof__(__tg_promote(__x)))
+#define __tg_promote2(__x, __y)      (__typeof__(__tg_promote(__x) + \
+                                                 __tg_promote(__y)))
+#define __tg_promote3(__x, __y, __z) (__typeof__(__tg_promote(__x) + \
+                                                 __tg_promote(__y) + \
+                                                 __tg_promote(__z)))
+
+// acos
+
+static float
+    _TG_ATTRS
+    __tg_acos(float __x) {return acosf(__x);}
+
+static double
+    _TG_ATTRS
+    __tg_acos(double __x) {return acos(__x);}
+
+static long double
+    _TG_ATTRS
+    __tg_acos(long double __x) {return acosl(__x);}
+
+static float _Complex
+    _TG_ATTRS
+    __tg_acos(float _Complex __x) {return cacosf(__x);}
+
+static double _Complex
+    _TG_ATTRS
+    __tg_acos(double _Complex __x) {return cacos(__x);}
+
+static long double _Complex
+    _TG_ATTRS
+    __tg_acos(long double _Complex __x) {return cacosl(__x);}
+
+#undef acos
+#define acos(__x) __tg_acos(__tg_promote1((__x))(__x))
+
+// asin
+
+static float
+    _TG_ATTRS
+    __tg_asin(float __x) {return asinf(__x);}
+
+static double
+    _TG_ATTRS
+    __tg_asin(double __x) {return asin(__x);}
+
+static long double
+    _TG_ATTRS
+    __tg_asin(long double __x) {return asinl(__x);}
+
+static float _Complex
+    _TG_ATTRS
+    __tg_asin(float _Complex __x) {return casinf(__x);}
+
+static double _Complex
+    _TG_ATTRS
+    __tg_asin(double _Complex __x) {return casin(__x);}
+
+static long double _Complex
+    _TG_ATTRS
+    __tg_asin(long double _Complex __x) {return casinl(__x);}
+
+#undef asin
+#define asin(__x) __tg_asin(__tg_promote1((__x))(__x))
+
+// atan
+
+static float
+    _TG_ATTRS
+    __tg_atan(float __x) {return atanf(__x);}
+
+static double
+    _TG_ATTRS
+    __tg_atan(double __x) {return atan(__x);}
+
+static long double
+    _TG_ATTRS
+    __tg_atan(long double __x) {return atanl(__x);}
+
+static float _Complex
+    _TG_ATTRS
+    __tg_atan(float _Complex __x) {return catanf(__x);}
+
+static double _Complex
+    _TG_ATTRS
+    __tg_atan(double _Complex __x) {return catan(__x);}
+
+static long double _Complex
+    _TG_ATTRS
+    __tg_atan(long double _Complex __x) {return catanl(__x);}
+
+#undef atan
+#define atan(__x) __tg_atan(__tg_promote1((__x))(__x))
+
+// acosh
+
+static float
+    _TG_ATTRS
+    __tg_acosh(float __x) {return acoshf(__x);}
+
+static double
+    _TG_ATTRS
+    __tg_acosh(double __x) {return acosh(__x);}
+
+static long double
+    _TG_ATTRS
+    __tg_acosh(long double __x) {return acoshl(__x);}
+
+static float _Complex
+    _TG_ATTRS
+    __tg_acosh(float _Complex __x) {return cacoshf(__x);}
+
+static double _Complex
+    _TG_ATTRS
+    __tg_acosh(double _Complex __x) {return cacosh(__x);}
+
+static long double _Complex
+    _TG_ATTRS
+    __tg_acosh(long double _Complex __x) {return cacoshl(__x);}
+
+#undef acosh
+#define acosh(__x) __tg_acosh(__tg_promote1((__x))(__x))
+
+// asinh
+
+static float
+    _TG_ATTRS
+    __tg_asinh(float __x) {return asinhf(__x);}
+
+static double
+    _TG_ATTRS
+    __tg_asinh(double __x) {return asinh(__x);}
+
+static long double
+    _TG_ATTRS
+    __tg_asinh(long double __x) {return asinhl(__x);}
+
+static float _Complex
+    _TG_ATTRS
+    __tg_asinh(float _Complex __x) {return casinhf(__x);}
+
+static double _Complex
+    _TG_ATTRS
+    __tg_asinh(double _Complex __x) {return casinh(__x);}
+
+static long double _Complex
+    _TG_ATTRS
+    __tg_asinh(long double _Complex __x) {return casinhl(__x);}
+
+#undef asinh
+#define asinh(__x) __tg_asinh(__tg_promote1((__x))(__x))
+
+// atanh
+
+static float
+    _TG_ATTRS
+    __tg_atanh(float __x) {return atanhf(__x);}
+
+static double
+    _TG_ATTRS
+    __tg_atanh(double __x) {return atanh(__x);}
+
+static long double
+    _TG_ATTRS
+    __tg_atanh(long double __x) {return atanhl(__x);}
+
+static float _Complex
+    _TG_ATTRS
+    __tg_atanh(float _Complex __x) {return catanhf(__x);}
+
+static double _Complex
+    _TG_ATTRS
+    __tg_atanh(double _Complex __x) {return catanh(__x);}
+
+static long double _Complex
+    _TG_ATTRS
+    __tg_atanh(long double _Complex __x) {return catanhl(__x);}
+
+#undef atanh
+#define atanh(__x) __tg_atanh(__tg_promote1((__x))(__x))
+
+// cos
+
+static float
+    _TG_ATTRS
+    __tg_cos(float __x) {return cosf(__x);}
+
+static double
+    _TG_ATTRS
+    __tg_cos(double __x) {return cos(__x);}
+
+static long double
+    _TG_ATTRS
+    __tg_cos(long double __x) {return cosl(__x);}
+
+static float _Complex
+    _TG_ATTRS
+    __tg_cos(float _Complex __x) {return ccosf(__x);}
+
+static double _Complex
+    _TG_ATTRS
+    __tg_cos(double _Complex __x) {return ccos(__x);}
+
+static long double _Complex
+    _TG_ATTRS
+    __tg_cos(long double _Complex __x) {return ccosl(__x);}
+
+#undef cos
+#define cos(__x) __tg_cos(__tg_promote1((__x))(__x))
+
+// sin
+
+static float
+    _TG_ATTRS
+    __tg_sin(float __x) {return sinf(__x);}
+
+static double
+    _TG_ATTRS
+    __tg_sin(double __x) {return sin(__x);}
+
+static long double
+    _TG_ATTRS
+    __tg_sin(long double __x) {return sinl(__x);}
+
+static float _Complex
+    _TG_ATTRS
+    __tg_sin(float _Complex __x) {return csinf(__x);}
+
+static double _Complex
+    _TG_ATTRS
+    __tg_sin(double _Complex __x) {return csin(__x);}
+
+static long double _Complex
+    _TG_ATTRS
+    __tg_sin(long double _Complex __x) {return csinl(__x);}
+
+#undef sin
+#define sin(__x) __tg_sin(__tg_promote1((__x))(__x))
+
+// tan
+
+static float
+    _TG_ATTRS
+    __tg_tan(float __x) {return tanf(__x);}
+
+static double
+    _TG_ATTRS
+    __tg_tan(double __x) {return tan(__x);}
+
+static long double
+    _TG_ATTRS
+    __tg_tan(long double __x) {return tanl(__x);}
+
+static float _Complex
+    _TG_ATTRS
+    __tg_tan(float _Complex __x) {return ctanf(__x);}
+
+static double _Complex
+    _TG_ATTRS
+    __tg_tan(double _Complex __x) {return ctan(__x);}
+
+static long double _Complex
+    _TG_ATTRS
+    __tg_tan(long double _Complex __x) {return ctanl(__x);}
+
+#undef tan
+#define tan(__x) __tg_tan(__tg_promote1((__x))(__x))
+
+// cosh
+
+static float
+    _TG_ATTRS
+    __tg_cosh(float __x) {return coshf(__x);}
+
+static double
+    _TG_ATTRS
+    __tg_cosh(double __x) {return cosh(__x);}
+
+static long double
+    _TG_ATTRS
+    __tg_cosh(long double __x) {return coshl(__x);}
+
+static float _Complex
+    _TG_ATTRS
+    __tg_cosh(float _Complex __x) {return ccoshf(__x);}
+
+static double _Complex
+    _TG_ATTRS
+    __tg_cosh(double _Complex __x) {return ccosh(__x);}
+
+static long double _Complex
+    _TG_ATTRS
+    __tg_cosh(long double _Complex __x) {return ccoshl(__x);}
+
+#undef cosh
+#define cosh(__x) __tg_cosh(__tg_promote1((__x))(__x))
+
+// sinh
+
+static float
+    _TG_ATTRS
+    __tg_sinh(float __x) {return sinhf(__x);}
+
+static double
+    _TG_ATTRS
+    __tg_sinh(double __x) {return sinh(__x);}
+
+static long double
+    _TG_ATTRS
+    __tg_sinh(long double __x) {return sinhl(__x);}
+
+static float _Complex
+    _TG_ATTRS
+    __tg_sinh(float _Complex __x) {return csinhf(__x);}
+
+static double _Complex
+    _TG_ATTRS
+    __tg_sinh(double _Complex __x) {return csinh(__x);}
+
+static long double _Complex
+    _TG_ATTRS
+    __tg_sinh(long double _Complex __x) {return csinhl(__x);}
+
+#undef sinh
+#define sinh(__x) __tg_sinh(__tg_promote1((__x))(__x))
+
+// tanh
+
+static float
+    _TG_ATTRS
+    __tg_tanh(float __x) {return tanhf(__x);}
+
+static double
+    _TG_ATTRS
+    __tg_tanh(double __x) {return tanh(__x);}
+
+static long double
+    _TG_ATTRS
+    __tg_tanh(long double __x) {return tanhl(__x);}
+
+static float _Complex
+    _TG_ATTRS
+    __tg_tanh(float _Complex __x) {return ctanhf(__x);}
+
+static double _Complex
+    _TG_ATTRS
+    __tg_tanh(double _Complex __x) {return ctanh(__x);}
+
+static long double _Complex
+    _TG_ATTRS
+    __tg_tanh(long double _Complex __x) {return ctanhl(__x);}
+
+#undef tanh
+#define tanh(__x) __tg_tanh(__tg_promote1((__x))(__x))
+
+// exp
+
+static float
+    _TG_ATTRS
+    __tg_exp(float __x) {return expf(__x);}
+
+static double
+    _TG_ATTRS
+    __tg_exp(double __x) {return exp(__x);}
+
+static long double
+    _TG_ATTRS
+    __tg_exp(long double __x) {return expl(__x);}
+
+static float _Complex
+    _TG_ATTRS
+    __tg_exp(float _Complex __x) {return cexpf(__x);}
+
+static double _Complex
+    _TG_ATTRS
+    __tg_exp(double _Complex __x) {return cexp(__x);}
+
+static long double _Complex
+    _TG_ATTRS
+    __tg_exp(long double _Complex __x) {return cexpl(__x);}
+
+#undef exp
+#define exp(__x) __tg_exp(__tg_promote1((__x))(__x))
+
+// log
+
+static float
+    _TG_ATTRS
+    __tg_log(float __x) {return logf(__x);}
+
+static double
+    _TG_ATTRS
+    __tg_log(double __x) {return log(__x);}
+
+static long double
+    _TG_ATTRS
+    __tg_log(long double __x) {return logl(__x);}
+
+static float _Complex
+    _TG_ATTRS
+    __tg_log(float _Complex __x) {return clogf(__x);}
+
+static double _Complex
+    _TG_ATTRS
+    __tg_log(double _Complex __x) {return clog(__x);}
+
+static long double _Complex
+    _TG_ATTRS
+    __tg_log(long double _Complex __x) {return clogl(__x);}
+
+#undef log
+#define log(__x) __tg_log(__tg_promote1((__x))(__x))
+
+// pow
+
+static float
+    _TG_ATTRS
+    __tg_pow(float __x, float __y) {return powf(__x, __y);}
+
+static double
+    _TG_ATTRS
+    __tg_pow(double __x, double __y) {return pow(__x, __y);}
+
+static long double
+    _TG_ATTRS
+    __tg_pow(long double __x, long double __y) {return powl(__x, __y);}
+
+static float _Complex
+    _TG_ATTRS
+    __tg_pow(float _Complex __x, float _Complex __y) {return cpowf(__x, __y);}
+
+static double _Complex
+    _TG_ATTRS
+    __tg_pow(double _Complex __x, double _Complex __y) {return cpow(__x, __y);}
+
+static long double _Complex
+    _TG_ATTRS
+    __tg_pow(long double _Complex __x, long double _Complex __y) 
+    {return cpowl(__x, __y);}
+
+#undef pow
+#define pow(__x, __y) __tg_pow(__tg_promote2((__x), (__y))(__x), \
+                               __tg_promote2((__x), (__y))(__y))
+
+// sqrt
+
+static float
+    _TG_ATTRS
+    __tg_sqrt(float __x) {return sqrtf(__x);}
+
+static double
+    _TG_ATTRS
+    __tg_sqrt(double __x) {return sqrt(__x);}
+
+static long double
+    _TG_ATTRS
+    __tg_sqrt(long double __x) {return sqrtl(__x);}
+
+static float _Complex
+    _TG_ATTRS
+    __tg_sqrt(float _Complex __x) {return csqrtf(__x);}
+
+static double _Complex
+    _TG_ATTRS
+    __tg_sqrt(double _Complex __x) {return csqrt(__x);}
+
+static long double _Complex
+    _TG_ATTRS
+    __tg_sqrt(long double _Complex __x) {return csqrtl(__x);}
+
+#undef sqrt
+#define sqrt(__x) __tg_sqrt(__tg_promote1((__x))(__x))
+
+// fabs
+
+static float
+    _TG_ATTRS
+    __tg_fabs(float __x) {return fabsf(__x);}
+
+static double
+    _TG_ATTRS
+    __tg_fabs(double __x) {return fabs(__x);}
+
+static long double
+    _TG_ATTRS
+    __tg_fabs(long double __x) {return fabsl(__x);}
+
+static float
+    _TG_ATTRS
+    __tg_fabs(float _Complex __x) {return cabsf(__x);}
+
+static double
+    _TG_ATTRS
+    __tg_fabs(double _Complex __x) {return cabs(__x);}
+
+static long double
+    _TG_ATTRS
+    __tg_fabs(long double _Complex __x) {return cabsl(__x);}
+
+#undef fabs
+#define fabs(__x) __tg_fabs(__tg_promote1((__x))(__x))
+
+// atan2
+
+static float
+    _TG_ATTRS
+    __tg_atan2(float __x, float __y) {return atan2f(__x, __y);}
+
+static double
+    _TG_ATTRS
+    __tg_atan2(double __x, double __y) {return atan2(__x, __y);}
+
+static long double
+    _TG_ATTRS
+    __tg_atan2(long double __x, long double __y) {return atan2l(__x, __y);}
+
+#undef atan2
+#define atan2(__x, __y) __tg_atan2(__tg_promote2((__x), (__y))(__x), \
+                                   __tg_promote2((__x), (__y))(__y))
+
+// cbrt
+
+static float
+    _TG_ATTRS
+    __tg_cbrt(float __x) {return cbrtf(__x);}
+
+static double
+    _TG_ATTRS
+    __tg_cbrt(double __x) {return cbrt(__x);}
+
+static long double
+    _TG_ATTRS
+    __tg_cbrt(long double __x) {return cbrtl(__x);}
+
+#undef cbrt
+#define cbrt(__x) __tg_cbrt(__tg_promote1((__x))(__x))
+
+// ceil
+
+static float
+    _TG_ATTRS
+    __tg_ceil(float __x) {return ceilf(__x);}
+
+static double
+    _TG_ATTRS
+    __tg_ceil(double __x) {return ceil(__x);}
+
+static long double
+    _TG_ATTRS
+    __tg_ceil(long double __x) {return ceill(__x);}
+
+#undef ceil
+#define ceil(__x) __tg_ceil(__tg_promote1((__x))(__x))
+
+// copysign
+
+static float
+    _TG_ATTRS
+    __tg_copysign(float __x, float __y) {return copysignf(__x, __y);}
+
+static double
+    _TG_ATTRS
+    __tg_copysign(double __x, double __y) {return copysign(__x, __y);}
+
+static long double
+    _TG_ATTRS
+    __tg_copysign(long double __x, long double __y) {return copysignl(__x, __y);}
+
+#undef copysign
+#define copysign(__x, __y) __tg_copysign(__tg_promote2((__x), (__y))(__x), \
+                                         __tg_promote2((__x), (__y))(__y))
+
+// erf
+
+static float
+    _TG_ATTRS
+    __tg_erf(float __x) {return erff(__x);}
+
+static double
+    _TG_ATTRS
+    __tg_erf(double __x) {return erf(__x);}
+
+static long double
+    _TG_ATTRS
+    __tg_erf(long double __x) {return erfl(__x);}
+
+#undef erf
+#define erf(__x) __tg_erf(__tg_promote1((__x))(__x))
+
+// erfc
+
+static float
+    _TG_ATTRS
+    __tg_erfc(float __x) {return erfcf(__x);}
+
+static double
+    _TG_ATTRS
+    __tg_erfc(double __x) {return erfc(__x);}
+
+static long double
+    _TG_ATTRS
+    __tg_erfc(long double __x) {return erfcl(__x);}
+
+#undef erfc
+#define erfc(__x) __tg_erfc(__tg_promote1((__x))(__x))
+
+// exp2
+
+static float
+    _TG_ATTRS
+    __tg_exp2(float __x) {return exp2f(__x);}
+
+static double
+    _TG_ATTRS
+    __tg_exp2(double __x) {return exp2(__x);}
+
+static long double
+    _TG_ATTRS
+    __tg_exp2(long double __x) {return exp2l(__x);}
+
+#undef exp2
+#define exp2(__x) __tg_exp2(__tg_promote1((__x))(__x))
+
+// expm1
+
+static float
+    _TG_ATTRS
+    __tg_expm1(float __x) {return expm1f(__x);}
+
+static double
+    _TG_ATTRS
+    __tg_expm1(double __x) {return expm1(__x);}
+
+static long double
+    _TG_ATTRS
+    __tg_expm1(long double __x) {return expm1l(__x);}
+
+#undef expm1
+#define expm1(__x) __tg_expm1(__tg_promote1((__x))(__x))
+
+// fdim
+
+static float
+    _TG_ATTRS
+    __tg_fdim(float __x, float __y) {return fdimf(__x, __y);}
+
+static double
+    _TG_ATTRS
+    __tg_fdim(double __x, double __y) {return fdim(__x, __y);}
+
+static long double
+    _TG_ATTRS
+    __tg_fdim(long double __x, long double __y) {return fdiml(__x, __y);}
+
+#undef fdim
+#define fdim(__x, __y) __tg_fdim(__tg_promote2((__x), (__y))(__x), \
+                                 __tg_promote2((__x), (__y))(__y))
+
+// floor
+
+static float
+    _TG_ATTRS
+    __tg_floor(float __x) {return floorf(__x);}
+
+static double
+    _TG_ATTRS
+    __tg_floor(double __x) {return floor(__x);}
+
+static long double
+    _TG_ATTRS
+    __tg_floor(long double __x) {return floorl(__x);}
+
+#undef floor
+#define floor(__x) __tg_floor(__tg_promote1((__x))(__x))
+
+// fma
+
+static float
+    _TG_ATTRS
+    __tg_fma(float __x, float __y, float __z)
+    {return fmaf(__x, __y, __z);}
+
+static double
+    _TG_ATTRS
+    __tg_fma(double __x, double __y, double __z)
+    {return fma(__x, __y, __z);}
+
+static long double
+    _TG_ATTRS
+    __tg_fma(long double __x,long double __y, long double __z)
+    {return fmal(__x, __y, __z);}
+
+#undef fma
+#define fma(__x, __y, __z)                                \
+        __tg_fma(__tg_promote3((__x), (__y), (__z))(__x), \
+                 __tg_promote3((__x), (__y), (__z))(__y), \
+                 __tg_promote3((__x), (__y), (__z))(__z))
+
+// fmax
+
+static float
+    _TG_ATTRS
+    __tg_fmax(float __x, float __y) {return fmaxf(__x, __y);}
+
+static double
+    _TG_ATTRS
+    __tg_fmax(double __x, double __y) {return fmax(__x, __y);}
+
+static long double
+    _TG_ATTRS
+    __tg_fmax(long double __x, long double __y) {return fmaxl(__x, __y);}
+
+#undef fmax
+#define fmax(__x, __y) __tg_fmax(__tg_promote2((__x), (__y))(__x), \
+                                 __tg_promote2((__x), (__y))(__y))
+
+// fmin
+
+static float
+    _TG_ATTRS
+    __tg_fmin(float __x, float __y) {return fminf(__x, __y);}
+
+static double
+    _TG_ATTRS
+    __tg_fmin(double __x, double __y) {return fmin(__x, __y);}
+
+static long double
+    _TG_ATTRS
+    __tg_fmin(long double __x, long double __y) {return fminl(__x, __y);}
+
+#undef fmin
+#define fmin(__x, __y) __tg_fmin(__tg_promote2((__x), (__y))(__x), \
+                                 __tg_promote2((__x), (__y))(__y))
+
+// fmod
+
+static float
+    _TG_ATTRS
+    __tg_fmod(float __x, float __y) {return fmodf(__x, __y);}
+
+static double
+    _TG_ATTRS
+    __tg_fmod(double __x, double __y) {return fmod(__x, __y);}
+
+static long double
+    _TG_ATTRS
+    __tg_fmod(long double __x, long double __y) {return fmodl(__x, __y);}
+
+#undef fmod
+#define fmod(__x, __y) __tg_fmod(__tg_promote2((__x), (__y))(__x), \
+                                 __tg_promote2((__x), (__y))(__y))
+
+// frexp
+
+static float
+    _TG_ATTRS
+    __tg_frexp(float __x, int* __y) {return frexpf(__x, __y);}
+
+static double
+    _TG_ATTRS
+    __tg_frexp(double __x, int* __y) {return frexp(__x, __y);}
+
+static long double
+    _TG_ATTRS
+    __tg_frexp(long double __x, int* __y) {return frexpl(__x, __y);}
+
+#undef frexp
+#define frexp(__x, __y) __tg_frexp(__tg_promote1((__x))(__x), __y)
+
+// hypot
+
+static float
+    _TG_ATTRS
+    __tg_hypot(float __x, float __y) {return hypotf(__x, __y);}
+
+static double
+    _TG_ATTRS
+    __tg_hypot(double __x, double __y) {return hypot(__x, __y);}
+
+static long double
+    _TG_ATTRS
+    __tg_hypot(long double __x, long double __y) {return hypotl(__x, __y);}
+
+#undef hypot
+#define hypot(__x, __y) __tg_hypot(__tg_promote2((__x), (__y))(__x), \
+                                   __tg_promote2((__x), (__y))(__y))
+
+// ilogb
+
+static int
+    _TG_ATTRS
+    __tg_ilogb(float __x) {return ilogbf(__x);}
+
+static int
+    _TG_ATTRS
+    __tg_ilogb(double __x) {return ilogb(__x);}
+
+static int
+    _TG_ATTRS
+    __tg_ilogb(long double __x) {return ilogbl(__x);}
+
+#undef ilogb
+#define ilogb(__x) __tg_ilogb(__tg_promote1((__x))(__x))
+
+// ldexp
+
+static float
+    _TG_ATTRS
+    __tg_ldexp(float __x, int __y) {return ldexpf(__x, __y);}
+
+static double
+    _TG_ATTRS
+    __tg_ldexp(double __x, int __y) {return ldexp(__x, __y);}
+
+static long double
+    _TG_ATTRS
+    __tg_ldexp(long double __x, int __y) {return ldexpl(__x, __y);}
+
+#undef ldexp
+#define ldexp(__x, __y) __tg_ldexp(__tg_promote1((__x))(__x), __y)
+
+// lgamma
+
+static float
+    _TG_ATTRS
+    __tg_lgamma(float __x) {return lgammaf(__x);}
+
+static double
+    _TG_ATTRS
+    __tg_lgamma(double __x) {return lgamma(__x);}
+
+static long double
+    _TG_ATTRS
+    __tg_lgamma(long double __x) {return lgammal(__x);}
+
+#undef lgamma
+#define lgamma(__x) __tg_lgamma(__tg_promote1((__x))(__x))
+
+// llrint
+
+static long long
+    _TG_ATTRS
+    __tg_llrint(float __x) {return llrintf(__x);}
+
+static long long
+    _TG_ATTRS
+    __tg_llrint(double __x) {return llrint(__x);}
+
+static long long
+    _TG_ATTRS
+    __tg_llrint(long double __x) {return llrintl(__x);}
+
+#undef llrint
+#define llrint(__x) __tg_llrint(__tg_promote1((__x))(__x))
+
+// llround
+
+static long long
+    _TG_ATTRS
+    __tg_llround(float __x) {return llroundf(__x);}
+
+static long long
+    _TG_ATTRS
+    __tg_llround(double __x) {return llround(__x);}
+
+static long long
+    _TG_ATTRS
+    __tg_llround(long double __x) {return llroundl(__x);}
+
+#undef llround
+#define llround(__x) __tg_llround(__tg_promote1((__x))(__x))
+
+// log10
+
+static float
+    _TG_ATTRS
+    __tg_log10(float __x) {return log10f(__x);}
+
+static double
+    _TG_ATTRS
+    __tg_log10(double __x) {return log10(__x);}
+
+static long double
+    _TG_ATTRS
+    __tg_log10(long double __x) {return log10l(__x);}
+
+#undef log10
+#define log10(__x) __tg_log10(__tg_promote1((__x))(__x))
+
+// log1p
+
+static float
+    _TG_ATTRS
+    __tg_log1p(float __x) {return log1pf(__x);}
+
+static double
+    _TG_ATTRS
+    __tg_log1p(double __x) {return log1p(__x);}
+
+static long double
+    _TG_ATTRS
+    __tg_log1p(long double __x) {return log1pl(__x);}
+
+#undef log1p
+#define log1p(__x) __tg_log1p(__tg_promote1((__x))(__x))
+
+// log2
+
+static float
+    _TG_ATTRS
+    __tg_log2(float __x) {return log2f(__x);}
+
+static double
+    _TG_ATTRS
+    __tg_log2(double __x) {return log2(__x);}
+
+static long double
+    _TG_ATTRS
+    __tg_log2(long double __x) {return log2l(__x);}
+
+#undef log2
+#define log2(__x) __tg_log2(__tg_promote1((__x))(__x))
+
+// logb
+
+static float
+    _TG_ATTRS
+    __tg_logb(float __x) {return logbf(__x);}
+
+static double
+    _TG_ATTRS
+    __tg_logb(double __x) {return logb(__x);}
+
+static long double
+    _TG_ATTRS
+    __tg_logb(long double __x) {return logbl(__x);}
+
+#undef logb
+#define logb(__x) __tg_logb(__tg_promote1((__x))(__x))
+
+// lrint
+
+static long
+    _TG_ATTRS
+    __tg_lrint(float __x) {return lrintf(__x);}
+
+static long
+    _TG_ATTRS
+    __tg_lrint(double __x) {return lrint(__x);}
+
+static long
+    _TG_ATTRS
+    __tg_lrint(long double __x) {return lrintl(__x);}
+
+#undef lrint
+#define lrint(__x) __tg_lrint(__tg_promote1((__x))(__x))
+
+// lround
+
+static long
+    _TG_ATTRS
+    __tg_lround(float __x) {return lroundf(__x);}
+
+static long
+    _TG_ATTRS
+    __tg_lround(double __x) {return lround(__x);}
+
+static long
+    _TG_ATTRS
+    __tg_lround(long double __x) {return lroundl(__x);}
+
+#undef lround
+#define lround(__x) __tg_lround(__tg_promote1((__x))(__x))
+
+// nearbyint
+
+static float
+    _TG_ATTRS
+    __tg_nearbyint(float __x) {return nearbyintf(__x);}
+
+static double
+    _TG_ATTRS
+    __tg_nearbyint(double __x) {return nearbyint(__x);}
+
+static long double
+    _TG_ATTRS
+    __tg_nearbyint(long double __x) {return nearbyintl(__x);}
+
+#undef nearbyint
+#define nearbyint(__x) __tg_nearbyint(__tg_promote1((__x))(__x))
+
+// nextafter
+
+static float
+    _TG_ATTRS
+    __tg_nextafter(float __x, float __y) {return nextafterf(__x, __y);}
+
+static double
+    _TG_ATTRS
+    __tg_nextafter(double __x, double __y) {return nextafter(__x, __y);}
+
+static long double
+    _TG_ATTRS
+    __tg_nextafter(long double __x, long double __y) {return nextafterl(__x, __y);}
+
+#undef nextafter
+#define nextafter(__x, __y) __tg_nextafter(__tg_promote2((__x), (__y))(__x), \
+                                           __tg_promote2((__x), (__y))(__y))
+
+// nexttoward
+
+static float
+    _TG_ATTRS
+    __tg_nexttoward(float __x, long double __y) {return nexttowardf(__x, __y);}
+
+static double
+    _TG_ATTRS
+    __tg_nexttoward(double __x, long double __y) {return nexttoward(__x, __y);}
+
+static long double
+    _TG_ATTRS
+    __tg_nexttoward(long double __x, long double __y) {return nexttowardl(__x, __y);}
+
+#undef nexttoward
+#define nexttoward(__x, __y) __tg_nexttoward(__tg_promote1((__x))(__x), (__y))
+
+// remainder
+
+static float
+    _TG_ATTRS
+    __tg_remainder(float __x, float __y) {return remainderf(__x, __y);}
+
+static double
+    _TG_ATTRS
+    __tg_remainder(double __x, double __y) {return remainder(__x, __y);}
+
+static long double
+    _TG_ATTRS
+    __tg_remainder(long double __x, long double __y) {return remainderl(__x, __y);}
+
+#undef remainder
+#define remainder(__x, __y) __tg_remainder(__tg_promote2((__x), (__y))(__x), \
+                                           __tg_promote2((__x), (__y))(__y))
+
+// remquo
+
+static float
+    _TG_ATTRS
+    __tg_remquo(float __x, float __y, int* __z)
+    {return remquof(__x, __y, __z);}
+
+static double
+    _TG_ATTRS
+    __tg_remquo(double __x, double __y, int* __z)
+    {return remquo(__x, __y, __z);}
+
+static long double
+    _TG_ATTRS
+    __tg_remquo(long double __x,long double __y, int* __z)
+    {return remquol(__x, __y, __z);}
+
+#undef remquo
+#define remquo(__x, __y, __z)                         \
+        __tg_remquo(__tg_promote2((__x), (__y))(__x), \
+                    __tg_promote2((__x), (__y))(__y), \
+                    (__z))
+
+// rint
+
+static float
+    _TG_ATTRS
+    __tg_rint(float __x) {return rintf(__x);}
+
+static double
+    _TG_ATTRS
+    __tg_rint(double __x) {return rint(__x);}
+
+static long double
+    _TG_ATTRS
+    __tg_rint(long double __x) {return rintl(__x);}
+
+#undef rint
+#define rint(__x) __tg_rint(__tg_promote1((__x))(__x))
+
+// round
+
+static float
+    _TG_ATTRS
+    __tg_round(float __x) {return roundf(__x);}
+
+static double
+    _TG_ATTRS
+    __tg_round(double __x) {return round(__x);}
+
+static long double
+    _TG_ATTRS
+    __tg_round(long double __x) {return roundl(__x);}
+
+#undef round
+#define round(__x) __tg_round(__tg_promote1((__x))(__x))
+
+// scalbn
+
+static float
+    _TG_ATTRS
+    __tg_scalbn(float __x, int __y) {return scalbnf(__x, __y);}
+
+static double
+    _TG_ATTRS
+    __tg_scalbn(double __x, int __y) {return scalbn(__x, __y);}
+
+static long double
+    _TG_ATTRS
+    __tg_scalbn(long double __x, int __y) {return scalbnl(__x, __y);}
+
+#undef scalbn
+#define scalbn(__x, __y) __tg_scalbn(__tg_promote1((__x))(__x), __y)
+
+// scalbln
+
+static float
+    _TG_ATTRS
+    __tg_scalbln(float __x, long __y) {return scalblnf(__x, __y);}
+
+static double
+    _TG_ATTRS
+    __tg_scalbln(double __x, long __y) {return scalbln(__x, __y);}
+
+static long double
+    _TG_ATTRS
+    __tg_scalbln(long double __x, long __y) {return scalblnl(__x, __y);}
+
+#undef scalbln
+#define scalbln(__x, __y) __tg_scalbln(__tg_promote1((__x))(__x), __y)
+
+// tgamma
+
+static float
+    _TG_ATTRS
+    __tg_tgamma(float __x) {return tgammaf(__x);}
+
+static double
+    _TG_ATTRS
+    __tg_tgamma(double __x) {return tgamma(__x);}
+
+static long double
+    _TG_ATTRS
+    __tg_tgamma(long double __x) {return tgammal(__x);}
+
+#undef tgamma
+#define tgamma(__x) __tg_tgamma(__tg_promote1((__x))(__x))
+
+// trunc
+
+static float
+    _TG_ATTRS
+    __tg_trunc(float __x) {return truncf(__x);}
+
+static double
+    _TG_ATTRS
+    __tg_trunc(double __x) {return trunc(__x);}
+
+static long double
+    _TG_ATTRS
+    __tg_trunc(long double __x) {return truncl(__x);}
+
+#undef trunc
+#define trunc(__x) __tg_trunc(__tg_promote1((__x))(__x))
+
+// carg
+
+static float
+    _TG_ATTRS
+    __tg_carg(float __x) {return atan2f(0.F, __x);}
+
+static double
+    _TG_ATTRS
+    __tg_carg(double __x) {return atan2(0., __x);}
+
+static long double
+    _TG_ATTRS
+    __tg_carg(long double __x) {return atan2l(0.L, __x);}
+
+static float
+    _TG_ATTRS
+    __tg_carg(float _Complex __x) {return cargf(__x);}
+
+static double
+    _TG_ATTRS
+    __tg_carg(double _Complex __x) {return carg(__x);}
+
+static long double
+    _TG_ATTRS
+    __tg_carg(long double _Complex __x) {return cargl(__x);}
+
+#undef carg
+#define carg(__x) __tg_carg(__tg_promote1((__x))(__x))
+
+// cimag
+
+static float
+    _TG_ATTRS
+    __tg_cimag(float __x) {return 0;}
+
+static double
+    _TG_ATTRS
+    __tg_cimag(double __x) {return 0;}
+
+static long double
+    _TG_ATTRS
+    __tg_cimag(long double __x) {return 0;}
+
+static float
+    _TG_ATTRS
+    __tg_cimag(float _Complex __x) {return cimagf(__x);}
+
+static double
+    _TG_ATTRS
+    __tg_cimag(double _Complex __x) {return cimag(__x);}
+
+static long double
+    _TG_ATTRS
+    __tg_cimag(long double _Complex __x) {return cimagl(__x);}
+
+#undef cimag
+#define cimag(__x) __tg_cimag(__tg_promote1((__x))(__x))
+
+// conj
+
+static float _Complex
+    _TG_ATTRS
+    __tg_conj(float __x) {return __x;}
+
+static double _Complex
+    _TG_ATTRS
+    __tg_conj(double __x) {return __x;}
+
+static long double _Complex
+    _TG_ATTRS
+    __tg_conj(long double __x) {return __x;}
+
+static float _Complex
+    _TG_ATTRS
+    __tg_conj(float _Complex __x) {return conjf(__x);}
+
+static double _Complex
+    _TG_ATTRS
+    __tg_conj(double _Complex __x) {return conj(__x);}
+
+static long double _Complex
+    _TG_ATTRS
+    __tg_conj(long double _Complex __x) {return conjl(__x);}
+
+#undef conj
+#define conj(__x) __tg_conj(__tg_promote1((__x))(__x))
+
+// cproj
+
+static float _Complex
+    _TG_ATTRS
+    __tg_cproj(float __x) {return cprojf(__x);}
+
+static double _Complex
+    _TG_ATTRS
+    __tg_cproj(double __x) {return cproj(__x);}
+
+static long double _Complex
+    _TG_ATTRS
+    __tg_cproj(long double __x) {return cprojl(__x);}
+
+static float _Complex
+    _TG_ATTRS
+    __tg_cproj(float _Complex __x) {return cprojf(__x);}
+
+static double _Complex
+    _TG_ATTRS
+    __tg_cproj(double _Complex __x) {return cproj(__x);}
+
+static long double _Complex
+    _TG_ATTRS
+    __tg_cproj(long double _Complex __x) {return cprojl(__x);}
+
+#undef cproj
+#define cproj(__x) __tg_cproj(__tg_promote1((__x))(__x))
+
+// creal
+
+static float
+    _TG_ATTRS
+    __tg_creal(float __x) {return __x;}
+
+static double
+    _TG_ATTRS
+    __tg_creal(double __x) {return __x;}
+
+static long double
+    _TG_ATTRS
+    __tg_creal(long double __x) {return __x;}
+
+static float
+    _TG_ATTRS
+    __tg_creal(float _Complex __x) {return crealf(__x);}
+
+static double
+    _TG_ATTRS
+    __tg_creal(double _Complex __x) {return creal(__x);}
+
+static long double
+    _TG_ATTRS
+    __tg_creal(long double _Complex __x) {return creall(__x);}
+
+#undef creal
+#define creal(__x) __tg_creal(__tg_promote1((__x))(__x))
+
+#undef _TG_ATTRSp
+#undef _TG_ATTRS
+
+#if __has_include(<realtime_safety/realtime_safety.h>)
+REALTIME_SAFE_END
+#endif
+
+#endif /* __cplusplus */
+#endif /* __TGMATH_H */
\ No newline at end of file
lib/libc/include/any-macos.13-any/unistd.h
@@ -0,0 +1,791 @@
+/*
+ * Copyright (c) 2000, 2002-2006, 2008-2010, 2012 Apple Inc. All rights reserved.
+ *
+ * @APPLE_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. 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_LICENSE_HEADER_END@
+ */
+/*-
+ * Copyright (c) 1998-1999 Apple Computer, Inc. All Rights Reserved
+ * Copyright (c) 1991, 1993, 1994
+ *	The Regents of the University of California.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *	This product includes software developed by the University of
+ *	California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ *	@(#)unistd.h	8.12 (Berkeley) 4/27/95
+ *
+ *  Copyright (c)  1998 Apple Compter, Inc.
+ *  All Rights Reserved
+ */
+
+/* History:
+        7/14/99 EKN at Apple fixed getdirentriesattr from getdirentryattr
+        3/26/98 CHW at Apple added real interface to searchfs call
+  	3/5/98  CHW at Apple added hfs semantic system calls headers
+*/
+
+#ifndef _UNISTD_H_
+#define	_UNISTD_H_
+
+#include <_types.h>
+#include <sys/unistd.h>
+#include <Availability.h>
+#include <sys/_types/_gid_t.h>
+#include <sys/_types/_intptr_t.h>
+#include <sys/_types/_off_t.h>
+#include <sys/_types/_pid_t.h>
+/* DO NOT REMOVE THIS COMMENT: fixincludes needs to see:
+ * _GCC_SIZE_T */
+#include <sys/_types/_size_t.h>
+#include <sys/_types/_ssize_t.h>
+#include <sys/_types/_uid_t.h>
+#include <sys/_types/_useconds_t.h>
+#include <sys/_types/_null.h>
+
+#define	 STDIN_FILENO	0	/* standard input file descriptor */
+#define	STDOUT_FILENO	1	/* standard output file descriptor */
+#define	STDERR_FILENO	2	/* standard error file descriptor */
+
+
+/* Version test macros */
+/* _POSIX_VERSION and _POSIX2_VERSION from sys/unistd.h */
+#define	_XOPEN_VERSION			600		/* [XSI] */
+#define	_XOPEN_XCU_VERSION		4		/* Older standard */
+
+
+/* Please keep this list in the same order as the applicable standard */
+#define	_POSIX_ADVISORY_INFO		(-1)		/* [ADV] */
+#define	_POSIX_ASYNCHRONOUS_IO		(-1)		/* [AIO] */
+#define	_POSIX_BARRIERS			(-1)		/* [BAR] */
+#define	_POSIX_CHOWN_RESTRICTED		200112L
+#define	_POSIX_CLOCK_SELECTION		(-1)		/* [CS] */
+#define	_POSIX_CPUTIME			(-1)		/* [CPT] */
+#define	_POSIX_FSYNC			200112L		/* [FSC] */
+#define	_POSIX_IPV6			200112L
+#define	_POSIX_JOB_CONTROL		200112L
+#define	_POSIX_MAPPED_FILES		200112L		/* [MF] */
+#define	_POSIX_MEMLOCK			(-1)		/* [ML] */
+#define	_POSIX_MEMLOCK_RANGE		(-1)		/* [MR] */
+#define	_POSIX_MEMORY_PROTECTION	200112L		/* [MPR] */
+#define	_POSIX_MESSAGE_PASSING		(-1)		/* [MSG] */
+#define	_POSIX_MONOTONIC_CLOCK		(-1)		/* [MON] */
+#define	_POSIX_NO_TRUNC			200112L
+#define	_POSIX_PRIORITIZED_IO		(-1)		/* [PIO] */
+#define	_POSIX_PRIORITY_SCHEDULING	(-1)		/* [PS] */
+#define	_POSIX_RAW_SOCKETS		(-1)		/* [RS] */
+#define	_POSIX_READER_WRITER_LOCKS	200112L		/* [THR] */
+#define	_POSIX_REALTIME_SIGNALS		(-1)		/* [RTS] */
+#define	_POSIX_REGEXP			200112L
+#define	_POSIX_SAVED_IDS		200112L		/* XXX required */
+#define	_POSIX_SEMAPHORES		(-1)		/* [SEM] */
+#define	_POSIX_SHARED_MEMORY_OBJECTS	(-1)		/* [SHM] */
+#define	_POSIX_SHELL			200112L
+#define	_POSIX_SPAWN			200112L		/* [SPN] */
+#define	_POSIX_SPIN_LOCKS		(-1)		/* [SPI] */
+#define	_POSIX_SPORADIC_SERVER		(-1)		/* [SS] */
+#define	_POSIX_SYNCHRONIZED_IO		(-1)		/* [SIO] */
+#define	_POSIX_THREAD_ATTR_STACKADDR	200112L		/* [TSA] */
+#define	_POSIX_THREAD_ATTR_STACKSIZE	200112L		/* [TSS] */
+#define	_POSIX_THREAD_CPUTIME		(-1)		/* [TCT] */
+#define	_POSIX_THREAD_PRIO_INHERIT	(-1)		/* [TPI] */
+#define	_POSIX_THREAD_PRIO_PROTECT	(-1)		/* [TPP] */
+#define	_POSIX_THREAD_PRIORITY_SCHEDULING	(-1)	/* [TPS] */
+#define	_POSIX_THREAD_PROCESS_SHARED	200112L		/* [TSH] */
+#define	_POSIX_THREAD_SAFE_FUNCTIONS	200112L		/* [TSF] */
+#define	_POSIX_THREAD_SPORADIC_SERVER	(-1)		/* [TSP] */
+#define	_POSIX_THREADS			200112L		/* [THR] */
+#define	_POSIX_TIMEOUTS			(-1)		/* [TMO] */
+#define	_POSIX_TIMERS			(-1)		/* [TMR] */
+#define	_POSIX_TRACE			(-1)		/* [TRC] */
+#define	_POSIX_TRACE_EVENT_FILTER	(-1)		/* [TEF] */
+#define	_POSIX_TRACE_INHERIT		(-1)		/* [TRI] */
+#define	_POSIX_TRACE_LOG		(-1)		/* [TRL] */
+#define	_POSIX_TYPED_MEMORY_OBJECTS	(-1)		/* [TYM] */
+#ifndef _POSIX_VDISABLE
+#define	_POSIX_VDISABLE			0xff		/* same as sys/termios.h */
+#endif /* _POSIX_VDISABLE */
+
+#if __DARWIN_C_LEVEL >= 199209L
+#define	_POSIX2_C_BIND			200112L
+#define	_POSIX2_C_DEV			200112L		/* c99 command */
+#define	_POSIX2_CHAR_TERM		200112L
+#define	_POSIX2_FORT_DEV		(-1)		/* fort77 command */
+#define	_POSIX2_FORT_RUN		200112L
+#define	_POSIX2_LOCALEDEF		200112L		/* localedef command */
+#define	_POSIX2_PBS			(-1)
+#define	_POSIX2_PBS_ACCOUNTING		(-1)
+#define	_POSIX2_PBS_CHECKPOINT		(-1)
+#define	_POSIX2_PBS_LOCATE		(-1)
+#define	_POSIX2_PBS_MESSAGE		(-1)
+#define	_POSIX2_PBS_TRACK		(-1)
+#define	_POSIX2_SW_DEV			200112L
+#define	_POSIX2_UPE			200112L	/* XXXX no fc, newgrp, tabs */
+#endif /* __DARWIN_C_LEVEL */
+
+#define	__ILP32_OFF32          (-1)
+#define	__ILP32_OFFBIG         (-1)
+
+#define	__LP64_OFF64           (1)
+#define	__LPBIG_OFFBIG         (1)
+
+#if __DARWIN_C_LEVEL >= 200112L
+#define	_POSIX_V6_ILP32_OFF32		__ILP32_OFF32
+#define	_POSIX_V6_ILP32_OFFBIG		__ILP32_OFFBIG
+#define	_POSIX_V6_LP64_OFF64		__LP64_OFF64
+#define	_POSIX_V6_LPBIG_OFFBIG		__LPBIG_OFFBIG
+#endif /* __DARWIN_C_LEVEL >= 200112L */
+
+#if __DARWIN_C_LEVEL >= 200809L
+#define	_POSIX_V7_ILP32_OFF32		__ILP32_OFF32
+#define	_POSIX_V7_ILP32_OFFBIG		__ILP32_OFFBIG
+#define	_POSIX_V7_LP64_OFF64		__LP64_OFF64
+#define	_POSIX_V7_LPBIG_OFFBIG		__LPBIG_OFFBIG
+#endif /* __DARWIN_C_LEVEL >= 200809L */
+
+#if __DARWIN_C_LEVEL >= __DARWIN_C_FULL
+#define	_V6_ILP32_OFF32             __ILP32_OFF32
+#define	_V6_ILP32_OFFBIG            __ILP32_OFFBIG
+#define	_V6_LP64_OFF64              __LP64_OFF64
+#define	_V6_LPBIG_OFFBIG            __LPBIG_OFFBIG
+#endif /* __DARWIN_C_LEVEL >= __DARWIN_C_FULL */
+
+#if (__DARWIN_C_LEVEL >= 199506L && __DARWIN_C_LEVEL < 200809L) || __DARWIN_C_LEVEL >= __DARWIN_C_FULL
+/* Removed in Issue 7 */
+#define	_XBS5_ILP32_OFF32		    __ILP32_OFF32
+#define	_XBS5_ILP32_OFFBIG		    __ILP32_OFFBIG
+#define	_XBS5_LP64_OFF64		    __LP64_OFF64
+#define	_XBS5_LPBIG_OFFBIG		    __LPBIG_OFFBIG
+#endif /* __DARWIN_C_LEVEL < 200809L */
+
+#if __DARWIN_C_LEVEL >= 199506L /* This really should be XSI */ 
+#define	_XOPEN_CRYPT			(1)
+#define	_XOPEN_ENH_I18N			(1)		/* XXX required */
+#define	_XOPEN_LEGACY			(-1)	/* no ftime gcvt, wcswcs */
+#define	_XOPEN_REALTIME			(-1)	/* no q'ed signals, mq_* */
+#define	_XOPEN_REALTIME_THREADS		(-1)	/* no posix_spawn, et. al. */
+#define	_XOPEN_SHM			(1)
+#define	_XOPEN_STREAMS			(-1)   /* Issue 6 */
+#define	_XOPEN_UNIX			(1)
+#endif /* XSI */
+
+/* configurable system variables */
+#define	_SC_ARG_MAX			 1
+#define	_SC_CHILD_MAX			 2
+#define	_SC_CLK_TCK			 3
+#define	_SC_NGROUPS_MAX			 4
+#define	_SC_OPEN_MAX			 5
+#define	_SC_JOB_CONTROL			 6
+#define	_SC_SAVED_IDS			 7
+#define	_SC_VERSION			 8
+#define	_SC_BC_BASE_MAX			 9
+#define	_SC_BC_DIM_MAX			10
+#define	_SC_BC_SCALE_MAX		11
+#define	_SC_BC_STRING_MAX		12
+#define	_SC_COLL_WEIGHTS_MAX		13
+#define	_SC_EXPR_NEST_MAX		14
+#define	_SC_LINE_MAX			15
+#define	_SC_RE_DUP_MAX			16
+#define	_SC_2_VERSION			17
+#define	_SC_2_C_BIND			18
+#define	_SC_2_C_DEV			19
+#define	_SC_2_CHAR_TERM			20
+#define	_SC_2_FORT_DEV			21
+#define	_SC_2_FORT_RUN			22
+#define	_SC_2_LOCALEDEF			23
+#define	_SC_2_SW_DEV			24
+#define	_SC_2_UPE			25
+#define	_SC_STREAM_MAX			26
+#define	_SC_TZNAME_MAX			27
+
+#if __DARWIN_C_LEVEL >= 199309L
+#define	_SC_ASYNCHRONOUS_IO		28
+#define	_SC_PAGESIZE			29
+#define	_SC_MEMLOCK			30
+#define	_SC_MEMLOCK_RANGE		31
+#define	_SC_MEMORY_PROTECTION		32
+#define	_SC_MESSAGE_PASSING		33
+#define	_SC_PRIORITIZED_IO		34
+#define	_SC_PRIORITY_SCHEDULING		35
+#define	_SC_REALTIME_SIGNALS		36
+#define	_SC_SEMAPHORES			37
+#define	_SC_FSYNC			38
+#define	_SC_SHARED_MEMORY_OBJECTS 	39
+#define	_SC_SYNCHRONIZED_IO		40
+#define	_SC_TIMERS			41
+#define	_SC_AIO_LISTIO_MAX		42
+#define	_SC_AIO_MAX			43
+#define	_SC_AIO_PRIO_DELTA_MAX		44
+#define	_SC_DELAYTIMER_MAX		45
+#define	_SC_MQ_OPEN_MAX			46
+#define	_SC_MAPPED_FILES		47	/* swap _SC_PAGESIZE vs. BSD */
+#define	_SC_RTSIG_MAX			48
+#define	_SC_SEM_NSEMS_MAX		49
+#define	_SC_SEM_VALUE_MAX		50
+#define	_SC_SIGQUEUE_MAX		51
+#define	_SC_TIMER_MAX			52
+#endif /* __DARWIN_C_LEVEL >= 199309L */
+
+#if __DARWIN_C_LEVEL >= __DARWIN_C_FULL
+#define	_SC_NPROCESSORS_CONF		57
+#define	_SC_NPROCESSORS_ONLN		58
+#endif /* __DARWIN_C_LEVEL >= __DARWIN_C_FULL */
+
+#if __DARWIN_C_LEVEL >= 200112L
+#define	_SC_2_PBS			59
+#define	_SC_2_PBS_ACCOUNTING		60
+#define	_SC_2_PBS_CHECKPOINT		61
+#define	_SC_2_PBS_LOCATE		62
+#define	_SC_2_PBS_MESSAGE		63
+#define	_SC_2_PBS_TRACK			64
+#define	_SC_ADVISORY_INFO		65
+#define	_SC_BARRIERS			66
+#define	_SC_CLOCK_SELECTION		67
+#define	_SC_CPUTIME			68
+#define	_SC_FILE_LOCKING		69
+#define	_SC_GETGR_R_SIZE_MAX		70
+#define	_SC_GETPW_R_SIZE_MAX		71
+#define	_SC_HOST_NAME_MAX		72
+#define	_SC_LOGIN_NAME_MAX		73
+#define	_SC_MONOTONIC_CLOCK		74
+#define	_SC_MQ_PRIO_MAX			75
+#define	_SC_READER_WRITER_LOCKS		76
+#define	_SC_REGEXP			77
+#define	_SC_SHELL			78
+#define	_SC_SPAWN			79
+#define	_SC_SPIN_LOCKS			80
+#define	_SC_SPORADIC_SERVER		81
+#define	_SC_THREAD_ATTR_STACKADDR	82
+#define	_SC_THREAD_ATTR_STACKSIZE	83
+#define	_SC_THREAD_CPUTIME		84
+#define	_SC_THREAD_DESTRUCTOR_ITERATIONS 85
+#define	_SC_THREAD_KEYS_MAX		86
+#define	_SC_THREAD_PRIO_INHERIT		87
+#define	_SC_THREAD_PRIO_PROTECT		88
+#define	_SC_THREAD_PRIORITY_SCHEDULING	89
+#define	_SC_THREAD_PROCESS_SHARED	90
+#define	_SC_THREAD_SAFE_FUNCTIONS	91
+#define	_SC_THREAD_SPORADIC_SERVER	92
+#define	_SC_THREAD_STACK_MIN		93
+#define	_SC_THREAD_THREADS_MAX		94
+#define	_SC_TIMEOUTS			95
+#define	_SC_THREADS			96
+#define	_SC_TRACE			97
+#define	_SC_TRACE_EVENT_FILTER		98
+#define	_SC_TRACE_INHERIT		99
+#define	_SC_TRACE_LOG			100
+#define	_SC_TTY_NAME_MAX		101
+#define	_SC_TYPED_MEMORY_OBJECTS	102
+#define	_SC_V6_ILP32_OFF32		103
+#define	_SC_V6_ILP32_OFFBIG		104
+#define	_SC_V6_LP64_OFF64		105
+#define	_SC_V6_LPBIG_OFFBIG		106
+#define	_SC_IPV6			118
+#define	_SC_RAW_SOCKETS			119
+#define	_SC_SYMLOOP_MAX			120
+#endif /* __DARWIN_C_LEVEL >= 200112L */
+
+#if __DARWIN_C_LEVEL >= 199506L /* Really XSI */
+#define	_SC_ATEXIT_MAX			107
+#define	_SC_IOV_MAX			56
+#define	_SC_PAGE_SIZE			_SC_PAGESIZE
+#define	_SC_XOPEN_CRYPT			108
+#define	_SC_XOPEN_ENH_I18N		109
+#define	_SC_XOPEN_LEGACY		110      /* Issue 6 */
+#define	_SC_XOPEN_REALTIME		111      /* Issue 6 */
+#define	_SC_XOPEN_REALTIME_THREADS	112  /* Issue 6 */
+#define	_SC_XOPEN_SHM			113
+#define	_SC_XOPEN_STREAMS		114      /* Issue 6 */
+#define	_SC_XOPEN_UNIX			115
+#define	_SC_XOPEN_VERSION		116
+#define	_SC_XOPEN_XCU_VERSION		121
+#endif /* XSI */
+
+#if (__DARWIN_C_LEVEL >= 199506L && __DARWIN_C_LEVEL < 200809L) || __DARWIN_C_LEVEL >= __DARWIN_C_FULL
+/* Removed in Issue 7 */
+#define	_SC_XBS5_ILP32_OFF32		122
+#define	_SC_XBS5_ILP32_OFFBIG		123
+#define	_SC_XBS5_LP64_OFF64		124
+#define	_SC_XBS5_LPBIG_OFFBIG		125
+#endif /* __DARWIN_C_LEVEL <= 200809L */
+
+#if __DARWIN_C_LEVEL >= 200112L
+#define	_SC_SS_REPL_MAX			126
+#define	_SC_TRACE_EVENT_NAME_MAX	127
+#define	_SC_TRACE_NAME_MAX		128
+#define	_SC_TRACE_SYS_MAX		129
+#define	_SC_TRACE_USER_EVENT_MAX	130
+#endif
+
+#if __DARWIN_C_LEVEL < 200112L || __DARWIN_C_LEVEL >= __DARWIN_C_FULL
+/* Removed in Issue 6 */
+#define	_SC_PASS_MAX			131
+#endif
+
+/* 132-199 available for future use */
+#if __DARWIN_C_LEVEL >= __DARWIN_C_FULL
+#define	_SC_PHYS_PAGES			200
+#endif /* __DARWIN_C_LEVEL >= __DARWIN_C_FULL */
+
+#if __DARWIN_C_LEVEL >= 199209L
+#ifndef _CS_PATH /* Defined in <sys/unistd.h> */
+#define	_CS_PATH				1
+#endif
+#endif
+
+#if __DARWIN_C_LEVEL >= 200112
+#define	_CS_POSIX_V6_ILP32_OFF32_CFLAGS		2
+#define	_CS_POSIX_V6_ILP32_OFF32_LDFLAGS	3
+#define	_CS_POSIX_V6_ILP32_OFF32_LIBS		4
+#define	_CS_POSIX_V6_ILP32_OFFBIG_CFLAGS	5
+#define	_CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS	6
+#define	_CS_POSIX_V6_ILP32_OFFBIG_LIBS		7
+#define	_CS_POSIX_V6_LP64_OFF64_CFLAGS		8
+#define	_CS_POSIX_V6_LP64_OFF64_LDFLAGS		9
+#define	_CS_POSIX_V6_LP64_OFF64_LIBS		10
+#define	_CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS	11
+#define	_CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS	12
+#define	_CS_POSIX_V6_LPBIG_OFFBIG_LIBS		13
+#define	_CS_POSIX_V6_WIDTH_RESTRICTED_ENVS	14
+#endif
+
+#if (__DARWIN_C_LEVEL >= 199506L && __DARWIN_C_LEVEL < 200809L) || __DARWIN_C_LEVEL >= __DARWIN_C_FULL
+/* Removed in Issue 7 */
+#define	_CS_XBS5_ILP32_OFF32_CFLAGS		20
+#define	_CS_XBS5_ILP32_OFF32_LDFLAGS		21
+#define	_CS_XBS5_ILP32_OFF32_LIBS		22
+#define	_CS_XBS5_ILP32_OFF32_LINTFLAGS		23
+#define	_CS_XBS5_ILP32_OFFBIG_CFLAGS		24
+#define	_CS_XBS5_ILP32_OFFBIG_LDFLAGS		25
+#define	_CS_XBS5_ILP32_OFFBIG_LIBS		26
+#define	_CS_XBS5_ILP32_OFFBIG_LINTFLAGS		27
+#define	_CS_XBS5_LP64_OFF64_CFLAGS		28
+#define	_CS_XBS5_LP64_OFF64_LDFLAGS		29
+#define	_CS_XBS5_LP64_OFF64_LIBS		30
+#define	_CS_XBS5_LP64_OFF64_LINTFLAGS		31
+#define	_CS_XBS5_LPBIG_OFFBIG_CFLAGS		32
+#define	_CS_XBS5_LPBIG_OFFBIG_LDFLAGS		33
+#define	_CS_XBS5_LPBIG_OFFBIG_LIBS		34
+#define	_CS_XBS5_LPBIG_OFFBIG_LINTFLAGS		35
+#endif
+
+#if __DARWIN_C_LEVEL >= __DARWIN_C_FULL
+#define	_CS_DARWIN_USER_DIR			65536
+#define	_CS_DARWIN_USER_TEMP_DIR		65537
+#define	_CS_DARWIN_USER_CACHE_DIR		65538
+#endif /* __DARWIN_C_LEVEL >= __DARWIN_C_FULL */
+
+
+#ifdef _DARWIN_UNLIMITED_GETGROUPS
+#if defined(__IPHONE_OS_VERSION_MIN_REQUIRED) && __IPHONE_OS_VERSION_MIN_REQUIRED < __IPHONE_3_2
+#error "_DARWIN_UNLIMITED_GETGROUPS specified, but -miphoneos-version-min version does not support it."
+#elif defined(__MAC_OS_X_VERSION_MIN_REQUIRED) && __MAC_OS_X_VERSION_MIN_REQUIRED < __MAC_10_6
+#error "_DARWIN_UNLIMITED_GETGROUPS specified, but -mmacosx-version-min version does not support it."
+#endif
+#endif
+
+/* POSIX.1-1990 */
+
+__BEGIN_DECLS
+void	 _exit(int) __dead2;
+int	 access(const char *, int);
+unsigned int
+	 alarm(unsigned int);
+int	 chdir(const char *);
+int	 chown(const char *, uid_t, gid_t);
+
+int	 close(int) __DARWIN_ALIAS_C(close);
+
+int	 dup(int);
+int	 dup2(int, int);
+int	 execl(const char * __path, const char * __arg0, ...) __WATCHOS_PROHIBITED __TVOS_PROHIBITED;
+int	 execle(const char * __path, const char * __arg0, ...) __WATCHOS_PROHIBITED __TVOS_PROHIBITED;
+int	 execlp(const char * __file, const char * __arg0, ...) __WATCHOS_PROHIBITED __TVOS_PROHIBITED;
+int	 execv(const char * __path, char * const * __argv) __WATCHOS_PROHIBITED __TVOS_PROHIBITED;
+int	 execve(const char * __file, char * const * __argv, char * const * __envp) __WATCHOS_PROHIBITED __TVOS_PROHIBITED;
+int	 execvp(const char * __file, char * const * __argv) __WATCHOS_PROHIBITED __TVOS_PROHIBITED;
+pid_t	 fork(void) __WATCHOS_PROHIBITED __TVOS_PROHIBITED;
+long	 fpathconf(int, int);
+char	*getcwd(char *, size_t);
+gid_t	 getegid(void);
+uid_t	 geteuid(void);
+gid_t	 getgid(void);
+#if defined(_DARWIN_UNLIMITED_GETGROUPS) || defined(_DARWIN_C_SOURCE)
+int	 getgroups(int, gid_t []) __DARWIN_ALIAS_STARTING(__MAC_10_6, __IPHONE_3_2, __DARWIN_EXTSN(getgroups));
+#else /* !_DARWIN_UNLIMITED_GETGROUPS && !_DARWIN_C_SOURCE */
+int	 getgroups(int, gid_t []);
+#endif /* _DARWIN_UNLIMITED_GETGROUPS || _DARWIN_C_SOURCE */
+char	*getlogin(void);
+pid_t	 getpgrp(void);
+pid_t	 getpid(void);
+pid_t	 getppid(void);
+uid_t	 getuid(void);
+int	 isatty(int);
+int	 link(const char *, const char *);
+off_t	 lseek(int, off_t, int);
+long	 pathconf(const char *, int);
+
+int	 pause(void) __DARWIN_ALIAS_C(pause);
+
+int	 pipe(int [2]);
+
+ssize_t	 read(int, void *, size_t) __DARWIN_ALIAS_C(read);
+
+int	 rmdir(const char *);
+int	 setgid(gid_t);
+int	 setpgid(pid_t, pid_t);
+pid_t	 setsid(void);
+int	 setuid(uid_t);
+
+unsigned int
+	 sleep(unsigned int) __DARWIN_ALIAS_C(sleep);
+
+long	 sysconf(int);
+pid_t	 tcgetpgrp(int);
+int	 tcsetpgrp(int, pid_t);
+char	*ttyname(int);
+
+#if __DARWIN_UNIX03
+int	 ttyname_r(int, char *, size_t) __DARWIN_ALIAS(ttyname_r);
+#else /* !__DARWIN_UNIX03 */
+char	*ttyname_r(int, char *, size_t);
+#endif /* __DARWIN_UNIX03 */
+
+int	 unlink(const char *);
+
+ssize_t	 write(int __fd, const void * __buf, size_t __nbyte) __DARWIN_ALIAS_C(write);
+__END_DECLS
+
+
+
+/* Additional functionality provided by:
+ * POSIX.2-1992 C Language Binding Option
+ */
+
+#if __DARWIN_C_LEVEL >= 199209L
+__BEGIN_DECLS
+size_t	 confstr(int, char *, size_t) __DARWIN_ALIAS(confstr);
+
+int	 getopt(int, char * const [], const char *) __DARWIN_ALIAS(getopt);
+
+extern char *optarg;			/* getopt(3) external variables */
+extern int optind, opterr, optopt;
+__END_DECLS
+#endif /* __DARWIN_C_LEVEL >= 199209L */
+
+
+
+/* Additional functionality provided by:
+ * POSIX.1c-1995,
+ * POSIX.1i-1995,
+ * and the omnibus ISO/IEC 9945-1: 1996
+ */
+
+#if __DARWIN_C_LEVEL >= 199506L
+#include <_ctermid.h>
+                               /* These F_* are really XSI or Issue 6 */
+#define F_ULOCK         0      /* unlock locked section */
+#define	F_LOCK          1      /* lock a section for exclusive use */
+#define	F_TLOCK         2      /* test and lock a section for exclusive use */
+#define	F_TEST          3      /* test a section for locks by other procs */
+
+ __BEGIN_DECLS
+
+/* Begin XSI */
+/* Removed in Issue 6 */
+#if !defined(_POSIX_C_SOURCE) || _POSIX_C_SOURCE < 200112L
+#if !defined(_POSIX_C_SOURCE)
+__deprecated __WATCHOS_PROHIBITED __TVOS_PROHIBITED
+#endif
+void	*brk(const void *);
+int	 chroot(const char *) __POSIX_C_DEPRECATED(199506L);
+#endif
+
+char	*crypt(const char *, const char *);
+#if __DARWIN_UNIX03
+void	 encrypt(char *, int) __DARWIN_ALIAS(encrypt);
+#else /* !__DARWIN_UNIX03 */
+int	 encrypt(char *, int);
+#endif /* __DARWIN_UNIX03 */
+int	 fchdir(int);
+long	 gethostid(void);
+pid_t	 getpgid(pid_t);
+pid_t	 getsid(pid_t);
+
+/* Removed in Issue 6 */
+#if !defined(_POSIX_C_SOURCE) || _POSIX_C_SOURCE < 200112L
+int	 getdtablesize(void) __POSIX_C_DEPRECATED(199506L);
+int	 getpagesize(void) __pure2 __POSIX_C_DEPRECATED(199506L);
+char	*getpass(const char *) __POSIX_C_DEPRECATED(199506L);
+#endif
+
+/* Removed in Issue 7 */
+#if !defined(_POSIX_C_SOURCE) || _POSIX_C_SOURCE < 200809L
+char	*getwd(char *) __POSIX_C_DEPRECATED(200112L); /* obsoleted by getcwd() */
+#endif
+
+int	 lchown(const char *, uid_t, gid_t) __DARWIN_ALIAS(lchown);
+
+int	 lockf(int, int, off_t) __DARWIN_ALIAS_C(lockf);
+
+int	 nice(int) __DARWIN_ALIAS(nice);
+
+ssize_t	 pread(int __fd, void * __buf, size_t __nbyte, off_t __offset) __DARWIN_ALIAS_C(pread);
+
+ssize_t	 pwrite(int __fd, const void * __buf, size_t __nbyte, off_t __offset) __DARWIN_ALIAS_C(pwrite);
+
+/* Removed in Issue 6 */
+#if !defined(_POSIX_C_SOURCE) || _POSIX_C_SOURCE < 200112L
+/* Note that Issue 5 changed the argument as intprt_t,
+ * but we keep it as int for binary compatability. */
+#if !defined(_POSIX_C_SOURCE)
+__deprecated __WATCHOS_PROHIBITED __TVOS_PROHIBITED
+#endif
+void	*sbrk(int);
+#endif
+
+#if __DARWIN_UNIX03
+pid_t	 setpgrp(void) __DARWIN_ALIAS(setpgrp);
+#else /* !__DARWIN_UNIX03 */
+int	 setpgrp(pid_t pid, pid_t pgrp);	/* obsoleted by setpgid() */
+#endif /* __DARWIN_UNIX03 */
+
+int	 setregid(gid_t, gid_t) __DARWIN_ALIAS(setregid);
+
+int	 setreuid(uid_t, uid_t) __DARWIN_ALIAS(setreuid);
+
+void     swab(const void * __restrict, void * __restrict, ssize_t);
+void	 sync(void);
+int	 truncate(const char *, off_t);
+useconds_t	 ualarm(useconds_t, useconds_t);
+int	 usleep(useconds_t) __DARWIN_ALIAS_C(usleep);
+
+#if !defined(_POSIX_C_SOURCE)
+__deprecated_msg("Use posix_spawn or fork")
+#endif
+pid_t	 vfork(void) __WATCHOS_PROHIBITED __TVOS_PROHIBITED;
+/* End XSI */
+
+int	 fsync(int) __DARWIN_ALIAS_C(fsync);
+
+int	 ftruncate(int, off_t);
+int	 getlogin_r(char *, size_t);
+__END_DECLS
+#endif /* __DARWIN_C_LEVEL >= 199506L */
+
+
+
+/* Additional functionality provided by:
+ * POSIX.1-2001
+ * ISO C99
+ */
+
+#if __DARWIN_C_LEVEL >= 200112L
+__BEGIN_DECLS
+int	 fchown(int, uid_t, gid_t);
+int	 gethostname(char *, size_t);
+ssize_t  readlink(const char * __restrict, char * __restrict, size_t);
+int	 setegid(gid_t);
+int	 seteuid(uid_t);
+int	 symlink(const char *, const char *);
+__END_DECLS
+#endif /* __DARWIN_C_LEVEL >= 200112L */
+
+
+
+/* Darwin extensions */
+
+#if __DARWIN_C_LEVEL >= __DARWIN_C_FULL
+#include <sys/select.h>
+
+#include <sys/_types/_dev_t.h>
+#include <sys/_types/_mode_t.h>
+#include <sys/_types/_uuid_t.h>
+
+__BEGIN_DECLS
+void	 _Exit(int) __dead2;
+int	 accessx_np(const struct accessx_descriptor *, size_t, int *, uid_t);
+int	 acct(const char *);
+int	 add_profil(char *, size_t, unsigned long, unsigned int) __WATCHOS_PROHIBITED __TVOS_PROHIBITED;
+void	 endusershell(void);
+int	 execvP(const char * __file, const char * __searchpath, char * const * __argv)  __WATCHOS_PROHIBITED __TVOS_PROHIBITED;
+char	*fflagstostr(unsigned long);
+int	 getdomainname(char *, int);
+int	 getgrouplist(const char *, int, int *, int *);
+#if defined(__has_include)
+#if __has_include(<gethostuuid_private.h>)
+#include <gethostuuid_private.h>
+#else
+#include <gethostuuid.h>
+#endif
+#else
+#include <gethostuuid.h>
+#endif
+mode_t	 getmode(const void *, mode_t);
+int	 getpeereid(int, uid_t *, gid_t *);
+int	 getsgroups_np(int *, uuid_t);
+char	*getusershell(void);
+int	 getwgroups_np(int *, uuid_t);
+int	 initgroups(const char *, int);
+int	 issetugid(void);
+char	*mkdtemp(char *);
+int	 mknod(const char *, mode_t, dev_t);
+int	 mkpath_np(const char *path, mode_t omode) __OSX_AVAILABLE_STARTING(__MAC_10_8, __IPHONE_5_0); /* returns errno */
+int	 mkpathat_np(int dfd, const char *path, mode_t omode) /* returns errno */
+		__OSX_AVAILABLE(10.12) __IOS_AVAILABLE(10.0)
+		__TVOS_AVAILABLE(10.0) __WATCHOS_AVAILABLE(3.0);
+int	 mkstemp(char *);
+int	 mkstemps(char *, int);
+char	*mktemp(char *);
+int	 mkostemp(char *path, int oflags)
+		__OSX_AVAILABLE(10.12) __IOS_AVAILABLE(10.0)
+		__TVOS_AVAILABLE(10.0) __WATCHOS_AVAILABLE(3.0);
+int	 mkostemps(char *path, int slen, int oflags)
+		__OSX_AVAILABLE(10.12) __IOS_AVAILABLE(10.0)
+		__TVOS_AVAILABLE(10.0) __WATCHOS_AVAILABLE(3.0);
+/* Non-portable mkstemp that uses open_dprotected_np */
+int	 mkstemp_dprotected_np(char *path, int dpclass, int dpflags)
+		__OSX_UNAVAILABLE __IOS_AVAILABLE(10.0)
+		__TVOS_AVAILABLE(10.0) __WATCHOS_AVAILABLE(3.0);
+char   *mkdtempat_np(int dfd, char *path)
+		__OSX_AVAILABLE(10.13) __IOS_AVAILABLE(11.0)
+		__TVOS_AVAILABLE(11.0) __WATCHOS_AVAILABLE(4.0);
+int     mkstempsat_np(int dfd, char *path, int slen)
+		__OSX_AVAILABLE(10.13) __IOS_AVAILABLE(11.0)
+		__TVOS_AVAILABLE(11.0) __WATCHOS_AVAILABLE(4.0);
+int     mkostempsat_np(int dfd, char *path, int slen, int oflags)
+		__OSX_AVAILABLE(10.13) __IOS_AVAILABLE(11.0)
+		__TVOS_AVAILABLE(11.0) __WATCHOS_AVAILABLE(4.0);
+int	 nfssvc(int, void *);
+int	 profil(char *, size_t, unsigned long, unsigned int);
+
+__deprecated_msg("Use of per-thread security contexts is error-prone and discouraged.")
+int	 pthread_setugid_np(uid_t, gid_t);
+int	 pthread_getugid_np( uid_t *, gid_t *);
+
+int	 reboot(int);
+int	 revoke(const char *);
+
+__deprecated int	 rcmd(char **, int, const char *, const char *, const char *, int *);
+__deprecated int	 rcmd_af(char **, int, const char *, const char *, const char *, int *,
+		int);
+__deprecated int	 rresvport(int *);
+__deprecated int	 rresvport_af(int *, int);
+__deprecated int	 iruserok(unsigned long, int, const char *, const char *);
+__deprecated int	 iruserok_sa(const void *, int, int, const char *, const char *);
+__deprecated int	 ruserok(const char *, int, const char *, const char *);
+
+int	 setdomainname(const char *, int);
+int	 setgroups(int, const gid_t *);
+void	 sethostid(long);
+int	 sethostname(const char *, int);
+#if __DARWIN_UNIX03
+void	 setkey(const char *) __DARWIN_ALIAS(setkey);
+#else /* !__DARWIN_UNIX03 */
+int	 setkey(const char *);
+#endif /* __DARWIN_UNIX03 */
+int	 setlogin(const char *);
+void	*setmode(const char *) __DARWIN_ALIAS_STARTING(__MAC_10_6, __IPHONE_2_0, __DARWIN_ALIAS(setmode));
+int	 setrgid(gid_t);
+int	 setruid(uid_t);
+int	 setsgroups_np(int, const uuid_t);
+void	 setusershell(void);
+int	 setwgroups_np(int, const uuid_t);
+int	 strtofflags(char **, unsigned long *, unsigned long *);
+int	 swapon(const char *);
+int	 ttyslot(void);
+int	 undelete(const char *);
+int	 unwhiteout(const char *);
+void	*valloc(size_t);			
+
+__WATCHOS_PROHIBITED __TVOS_PROHIBITED
+__OS_AVAILABILITY_MSG(ios,deprecated=10.0,"syscall(2) is unsupported; "
+    "please switch to a supported interface. For SYS_kdebug_trace use kdebug_signpost().")
+__OS_AVAILABILITY_MSG(macosx,deprecated=10.12,"syscall(2) is unsupported; "
+    "please switch to a supported interface. For SYS_kdebug_trace use kdebug_signpost().")
+int	 syscall(int, ...);
+
+extern char *suboptarg;			/* getsubopt(3) external variable */
+int	 getsubopt(char **, char * const *, char **);
+
+/*  HFS & HFS Plus semantics system calls go here */
+#ifdef __LP64__
+int    fgetattrlist(int,void*,void*,size_t,unsigned int) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_3_0);
+int    fsetattrlist(int,void*,void*,size_t,unsigned int) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_3_0);
+int    getattrlist(const char*,void*,void*,size_t,unsigned int) __DARWIN_ALIAS(getattrlist);
+int    setattrlist(const char*,void*,void*,size_t,unsigned int) __DARWIN_ALIAS(setattrlist);
+int exchangedata(const char*,const char*,unsigned int) __WATCHOS_PROHIBITED __TVOS_PROHIBITED;
+int    getdirentriesattr(int,void*,void*,size_t,unsigned int*,unsigned int*,unsigned int*,unsigned int) __WATCHOS_PROHIBITED __TVOS_PROHIBITED;
+
+#else /* __LP64__ */
+int	fgetattrlist(int,void*,void*,size_t,unsigned long) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_3_0);
+int	fsetattrlist(int,void*,void*,size_t,unsigned long) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_3_0);
+int	getattrlist(const char*,void*,void*,size_t,unsigned long) __DARWIN_ALIAS(getattrlist);
+int	setattrlist(const char*,void*,void*,size_t,unsigned long) __DARWIN_ALIAS(setattrlist);
+int exchangedata(const char*,const char*,unsigned long)
+		__OSX_DEPRECATED(10.0, 10.13, "use renamex_np with the RENAME_SWAP flag")
+		__IOS_DEPRECATED(2.0, 11.0, "use renamex_np with the RENAME_SWAP flag")
+		__WATCHOS_PROHIBITED __TVOS_PROHIBITED;
+int	getdirentriesattr(int,void*,void*,size_t,unsigned long*,unsigned long*,unsigned long*,unsigned long) __WATCHOS_PROHIBITED __TVOS_PROHIBITED;
+
+#endif /* __LP64__ */
+
+struct fssearchblock;
+struct searchstate;
+
+int	 searchfs(const char *, struct fssearchblock *, unsigned long *, unsigned int, unsigned int, struct searchstate *) __WATCHOS_PROHIBITED __TVOS_PROHIBITED;
+int	 fsctl(const char *,unsigned long,void*,unsigned int);
+int	 ffsctl(int,unsigned long,void*,unsigned int) __OSX_AVAILABLE_STARTING(__MAC_10_6, __IPHONE_3_0);
+
+#define	SYNC_VOLUME_FULLSYNC	0x01	/* Flush data and metadata to platter, not just to disk cache */
+#define SYNC_VOLUME_WAIT	0x02	/* Wait for sync to complete */
+
+int	fsync_volume_np(int, int) __OSX_AVAILABLE_STARTING(__MAC_10_8, __IPHONE_6_0);
+int	sync_volume_np(const char *, int) __OSX_AVAILABLE_STARTING(__MAC_10_8, __IPHONE_6_0);
+
+extern int optreset;
+
+__END_DECLS
+#endif /* __DARWIN_C_LEVEL >= __DARWIN_C_FULL */
+
+#endif /* _UNISTD_H_ */
\ No newline at end of file
lib/libc/include/x86_64-macos.13-none/mach/i386/thread_status.h
@@ -132,6 +132,12 @@
  */
 #define THREAD_MACHINE_STATE_MAX        THREAD_STATE_MAX
 
+#define FLAVOR_MODIFIES_CORE_CPU_REGISTERS(x) \
+((x == x86_THREAD_STATE) ||     \
+ (x == x86_THREAD_STATE32) ||   \
+ (x == x86_THREAD_STATE64) ||   \
+ (x == x86_THREAD_FULL_STATE64))
+
 /*
  * VALID_THREAD_STATE_FLAVOR is a platform specific macro that when passed
  * an exception flavor will return if that is a defined flavor for that